如何为UIWebVIew伪造UIWebViewNavigationTypeLinkClicked

时间:2015-04-27 18:03:40

标签: 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方法。

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

1 个答案:

答案 0 :(得分:2)

To fake a onclick event from javascript you need to do something like this..

SET EXITCODE=0

copy source1 dest1
call someFile1.bat
if ERRORLEVEL 1 goto Failed
copy source2 dest2
call someFile2.bat
if ERRORLEVEL 1 goto Failed
copy source3 dest3
goto Success

:Failed
set EXITCODE=1
:Success
EXIT /B %EXITCODE%

the above code will hit the UIWebViewNavigationType.LinkClicked

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

the above code will trigger UIWebViewNavigationType.other