如何为 UIWebVIew 伪造 UIWebViewNavigationTypeLinkClicked

how do I fake the UIWebViewNavigationTypeLinkClicked for a UIWebVIew

我的问题是我在 UIWebView 中使用的网站使用 Javascript 打开 link

 window.open source, '_blank' //coffeescript

这是我当前用于捕捉 links...(不起作用)的代码,理论上,可以在 safari 中打开它们。单击此代码时会发生什么,实际上会触发并以 UIWebViewNavigationTypeOther 作为 UIWebViewNavigationType

func webView(webView: UIWebView!, shouldStartLoadWithRequest request: NSURLRequest!, navigationType: UIWebViewNavigationType) -> Bool {
    println("inside")
    var req = request.URL
    println(req.scheme)
    if navigationType == UIWebViewNavigationType.LinkClicked {
        println("false")
        UIApplication.sharedApplication().openURL(request.URL)
        return false
    }
    println("true")
    return true
}

我几乎总是以 UIWebViewNavigationType.other 作为 url 类型结束...我可以在 window.open 中做些什么来强制 linkClicked类型发生?或者通过 window.open 发送一些我可以在我这边阅读的自定义信息?我想避免 url?clicked=1 方法。

我对这里的想法持开放态度...

要从 javascript 伪造一个 onclick 事件,你需要做这样的事情..

var aTag = document.createElement('a');
aTag.setAttribute('href',"http://www.google.com");
aTag.innerHTML = "link text";
aTag.click()

以上代码会命中UIWebViewNavigationType.LinkClicked

window.open("http://www.w3schools.com");

以上代码会触发UIWebViewNavigationType.other