javascript - 如何伪造 UIWebViewNavigationTypeLinkClicked 为 UIWebVIew

标签 javascript ios swift uiwebview

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

 window.open source, '_blank' //coffeescript

这是我当前用来捕获链接的代码...(不起作用)理论上,可以在 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

关于javascript - 如何伪造 UIWebViewNavigationTypeLinkClicked 为 UIWebVIew,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29902889/

相关文章:

javascript - Socket.io 和 Jquery 附带不需要的附加数据

ios - 应用程序启动时自动布局更改 View 的高度

swift - 关于函数,数学符号函数 * 的调用方式不同。为什么?

swift - #AudioKit 无法在 Xcode 14.1、Maverick 上添加包

ios - 使用Core Data轻量级迁移考虑多个数据模型版本

ios - 如何正确加载来自 Firebase 的信息?

javascript - 如何正确取消嵌套并展平其中包含数组的 javascript 对象数组(X 次)

javascript - 如何解决Uncaught ReferenceError : bus is not defined? (vue.js 2)

javascript - 使用 call 或 apply 调用 jQuery 函数

ios - Swift iOS 10 的推送通知