我有一个现有的Cordova应用程序,在这里我手动修改了MainViewController.m以添加我自己的UIWebViewDelegate实现--但是,我想以“正确”的方式这样做,并使用一个插件(这样我就可以将平台代码真正地当作一个构建工件)。
从本指南中,我看到我应该能够通过我的插件代码设置我的UIWebViewDelegate;但是,这是行不通的。我的实现没有被调用。
在代码中,无论传入什么,它似乎总是使用CDVViewController作为委托。
这是个虫子吗?我只是做错了吗?正确的方法是什么?
这里我的场景是为一些特殊的处理捕获didFailLoadWithError事件(我们的Cordova应用程序使用远程资源,如果它们不加载,我希望允许重试选项)。当我直接修改应用程序源时,这是很好的。
发布于 2018-05-15 17:44:59
经过与科多瓦人的磋商,这似乎是个小问题:
https://issues.apache.org/jira/browse/CB-14076
cordova-ios的未来版本已经提交并接受了一个修补程序。
对于其他希望在将来这样做的人,我的建议是让您的UIWebViewDelegate实现存储指向在UIWebView上设置的上一个委托的指针,并将所有方法转发给该委托。如果您没有将现有委托的功能复制/粘贴到您自己的委托中,那么Cordova需要这样做才能正确工作。
https://stackoverflow.com/questions/50162345
复制相似问题