MainViewController.webView中没有委托方法

时间:2017-10-22 15:45:19

标签: ios cordova

我创建了一个新的Cordova应用程序,我想在 MainViewController.m 中添加该行

self.webView.delegate = self;

但是编译器说delegate中没有self.webView方法。

我还想添加 AppDelegate.m

[self.viewController.webView loadRequest:myRequest]

但也没有loadRequest方法。

我在一个有效的旧Cordova应用程序中看到了这些行。有什么改变了?我现在该怎么写这些台词?

由于

修改

我可以做[self.viewController.webViewEngine loadRequest:myRequest]但它有效,但无法做self.webViewEngine.delegate = self。 这个webViewEngine是什么?有人能从中推断出什么吗?

2 个答案:

答案 0 :(得分:0)

您编写的代码是UIWebview但是根据编译器对代理的响应不存在判断,您可能正在使用的Webview是WKWebview

在这种情况下,代码应为:

self.webview.navigationDelegate = self;
[self.webview loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"https://www.google.com"]]];

答案 1 :(得分:0)

我在https://issues.apache.org/jira/browse/CB-12451找到了答案:

  

这不是一个错误,这些更改是为了允许"可插入的webview"作为插件,您可以使用任何引擎(在iOS UIWebView或WKWebView上),所以现在有一些关于如何获取webview的抽象,因为它可以根据您设置的引擎具有不同的类。   如果您还没有安装WKWebView引擎插件,那么您正在使用UIWebView,当您访问self.webview时,由于抽象,它现在已成为UIView,但您可以将其转换为UIWebView并将其用作您之前做过。

所以我需要做的就是将webView转换为UIWebView并且它拥有所有方法。