我有一个现有的Cordova应用程序,我手动修改MainViewController.m
以添加我自己的UIWebViewDelegate
实现 - 但是,我想这样做"对&#34 ;方式和使用插件(所以我可以真正将平台代码视为构建工件)。
从this guide,我发现我应该能够从我的插件代码中设置UIWebViewDelegate
;但是,这不起作用。我的实现没有被调用。
在the code中,无论传递什么内容,它似乎总是使用CDVViewController
作为代理。
这是一个错误吗?我只是做错了吗?这样做的正确方法是什么?
我的方案是捕获didFailLoadWithError
事件以进行一些特殊处理(我们的Cordova应用程序使用远程资源,如果他们不加载,我想允许重试选项)。当我直接修改应用程序源时,这工作正常。
答案 0 :(得分:0)
在与Cordova人员进行一些咨询后,似乎这是一个错误:
https://issues.apache.org/jira/browse/CB-14076
已提交补丁并接受cordova-ios
的未来版本。
对于其他希望将来执行此操作的人,我的建议是让您的UIWebViewDelegate
实现存储指向UIWebView
上的上一个委托集的指针,并将所有方法转发给该委托。如果您没有将现有代理的功能复制/粘贴到您自己的代理中,则Cordova必须正常工作。