一尘不染

使用UIWebview用JavaScript调用Swift函数

swift

如果有人提出这个问题,我深表歉意,但是我找不到任何答案或解决方案。我想从“
UIWebView”中调用JavaScript函数,并迅速进行监听。我发现的任何示例都使用“
WKWebView”。必须有一种简单的方法来监听JavaScript函数,如下所示:

// HTML / JS
<div id ="myDiv" onclick="listenInSwift()">myItem</div>

UIWebView是否可能?谢谢大家!


阅读 201

收藏
2020-07-07

共1个答案

一尘不染

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方案(在本例中为“ yoururlscheme”)。

要在Web视图中加载本地文件,请尝试以下操作:

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)
2020-07-07