我创建了一个新的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是什么?有人能从中推断出什么吗?
答案 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
并且它拥有所有方法。