我最近更新了cordova 6.0。在我的MainViewController代码中我实现了shouldStartLoadWithRequest UIWebViewDelegate方法来做一些基本的过滤。现在6.0改变了。整个url处理在内部完成(来自私人文件夹的类),我不想更改它们,因为它会在下次更新时中断。 那么现在我的项目代码中的哪个地方告诉cordova允许或不允许特定请求?
答案 0 :(得分:1)
在深入了解cordova代码和一些调试后,我找到了一种方法来保持cordova代码不受影响并拦截请求。处理请求时,Cordova会检查响应
的所有插件- (BOOL)shouldOverrideLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType
并且取决于返回值允许或阻止请求。所以我创建了一个只有该方法的小插件,如果请求应该像cordova一样正常处理,则返回YES
,或者NO
来阻止它并自行处理。
答案 1 :(得分:0)
您可以使用原生cordova whitelisting。
答案 2 :(得分:0)
您可以通过扩展CDVViewController并实现接口UIWebViewDelegate来创建Controller。 Cordova将调用您的委托方法,并依赖于它将继续的返回值。
@interface MainViewController:CDVViewController< UIWebViewDelegate>
@end