如果有人提出这个问题,我深表歉意,但我找不到任何答案或解决方案。我希望从“UIWebView”调用 JavaScript 函数并快速收听它。我发现的任何示例都使用“WKWebView”。必须有一种简单的方法来收听如下所示的 JavaScript 函数:
// HTML / JS
<div id ="myDiv" onclick="listenInSwift()">myItem</div>
这对 UIWebView 来说可能吗?谢谢大家!
最佳答案
像这样实现 listenInSwift
:
function listenInSwift() {
window.location = 'yoururlscheme://somehost?greeting=hello'
}
然后在您的 UIWebViewDelegate
类中使用此代码监听此 URL:
func webView(_ webView: UIWebView, shouldStartLoadWithRequest request: NSURLRequest, navigationType navigationType: UIWebViewNavigationType) -> Bool {
if request.URL.scheme == 'yoururlscheme' {
print('Hello JavaScript...')
}
}
不要忘记在 Xcode 中注册您的 URL Scheme(在本例中为“yoururlscheme”)。
要在 WebView 中加载本地文件,试试这个:
let baseURL = NSURL.fileURLWithPath(NSBundle.mainBundle().bundlePath);
let relativePath = "www/\(file)"
let fileURL = NSURL(string: relativePath, relativeToURL: baseURL);
let URLRequest = NSURLRequest(URL: fileURL!);
webView.loadRequest(URLRequest)
关于javascript - 使用 UIWebview 使用 javascript 调用 swift 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36139062/