我正在使用WKWebView打开example.com,在那里我有一个测试链接,它应该打开一个JS警报,但我无法让它显示在设备上,它只有在我查看网站时才有效来自浏览器.
我正在使用WKUIDelegate,并将这段代码添加到ViewController.swift文件中:
func webView(webView: WKWebView, runJavaScriptAlertPanelWithMessage message: String, initiatedByFrame frame: WKFrameInfo, completionHandler: (() -> Void)) {
NSLog("Hello")
}
Run Code Online (Sandbox Code Playgroud)
当我点击产生JS警报的链接时,我在XCode控制台中看不到任何内容.
我错过了什么?
我如何在 flutter_webview_plugin 中运行 Javascript。我用这个试试。
onPressed: () {
flutterWebviewPlugin.evalJavascript('<script language="JavaScript" type="text/javascript">alert("Hello World")</script>');
},
Run Code Online (Sandbox Code Playgroud)
但什么也没有发生。
我认为使用 flutterWebviewPlugin.evalJavascript可以在 Webview 中运行 Javascript。我有错吗?
我不知道为什么我的问题被标记为重复这个问题,首先我用evaluateJavaScript执行javascript代码,因为问题标题显示它与那个问题明显不同.更重要的是,我已经注意到,在我的问题主体的最后,我在这个问题上尝试了答案而没有成功.
我使用wkwebview.evaluateJavaScript()funciton在swift3的wkwebview中执行javascript.但没有alert()打开警报对话框.并且没有错误和问题显示.虽然我可以evaluateJavaScript()用来执行javascript代码来修改页面内容.
class WebViewController: UIViewController, WKScriptMessageHandler, WKNavigationDelegate, WKUIDelegate, UIScrollViewDelegate {
var wk:WKWebView!
self.wk.navigationDelegate = self
self.wk.uiDelegate = self
self.wk.scrollView.delegate = self
self.wk.customUserAgent = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:53.0) Gecko/20100101 Firefox/53.0"
...
override func viewDidLoad() {
super.viewDidLoad()
...
let config = WKWebViewConfiguration()
self.wk = WKWebView(frame: CGRect(x: frame.minX, y: frame.minY+20, width: frame.width, height: frame.height-70), configuration: config)
self.wk.navigationDelegate = self
...
}
...
func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
print("Finished …Run Code Online (Sandbox Code Playgroud) 我一直在开发一个简单的应用程序,该应用程序可以为学生可以参加考试的网站提供网络视图。
所以基本上我遇到的问题是,当学生完成后,他们必须点击一个按钮来发送答案。将出现一个弹出窗口让他们确认。 https://i.stack.imgur.com/5GhB8.png 除了它没有出现。按下按钮时没有任何反应。它在 Safari 上完美运行,我注意到它可以在不推荐使用的 webview (UIWebview) 上运行,但我一直试图让它在 WKWebView 上运行。
我绝对不是快速专家,所以如果答案很简单,我深表歉意。我一直试图找到有关我的问题的一些答案,但我不确定如何实施。
预先感谢您的任何帮助,
import UIKit
import WebKit
class webViewController: UIViewController {
@IBOutlet weak var webview: WKWebView!
override func viewDidLoad() {
super.viewDidLoad()
let lien = "***"
if let url = URL(string: lien) {
let request = URLRequest(url: url)
_ = webview.load(request);
}
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
}
Run Code Online (Sandbox Code Playgroud)