如何从Cordova iOS插件实现UIWebViewDelegate?

时间:2018-05-03 19:12:13

标签: cordova cordova-plugins cordova-ios

我有一个现有的Cordova应用程序,我手动修改MainViewController.m以添加我自己的UIWebViewDelegate实现 - 但是,我想这样做"对&#34 ;方式和使用插件(所以我可以真正将平台代码视为构建工件)。

this guide,我发现我应该能够从我的插件代码中设置UIWebViewDelegate;但是,这不起作用。我的实现没有被调用。

the code中,无论传递什么内容,它似乎总是使用CDVViewController作为代理。

这是一个错误吗?我只是做错了吗?这样做的正确方法是什么?

我的方案是捕获didFailLoadWithError事件以进行一些特殊处理(我们的Cordova应用程序使用远程资源,如果他们不加载,我想允许重试选项)。当我直接修改应用程序源时,这工作正常。

1 个答案:

答案 0 :(得分:0)

在与Cordova人员进行一些咨询后,似乎这是一个错误:

https://issues.apache.org/jira/browse/CB-14076

已提交补丁并接受cordova-ios的未来版本。

对于其他希望将来执行此操作的人,我的建议是让您的UIWebViewDelegate实现存储指向UIWebView上的上一个委托集的指针,并将所有方法转发给该委托。如果您没有将现有代理的功能复制/粘贴到您自己的代理中,则Cordova必须正常工作。