Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 在UIWebview中拥有链接_Ios_Swift_Uiwebview - Fatal编程技术网

Ios 在UIWebview中拥有链接

Ios 在UIWebview中拥有链接,ios,swift,uiwebview,Ios,Swift,Uiwebview,我尝试在UIWebView中使用自己的操作创建自己的链接。为此,我喜欢阅读我自己链接的价值。 我设法做到了,但我希望有人对此进行审查,因为我不确定这是否是最佳做法?:-乱码 我用一些自己的链接创建自己的HTML,如: let myHTML:String="<a href=\"mylink:" + sLinkValue + "\">" + sDisplayText + "</a>"; 对于委托UIWebViewDelegate,单击链接时将调用我的委托: func web

我尝试在UIWebView中使用自己的操作创建自己的链接。为此,我喜欢阅读我自己链接的价值。 我设法做到了,但我希望有人对此进行审查,因为我不确定这是否是最佳做法?:-乱码

我用一些自己的链接创建自己的HTML,如:

let myHTML:String="<a href=\"mylink:" + sLinkValue + "\">" + sDisplayText + "</a>";
对于委托UIWebViewDelegate,单击链接时将调用我的委托:

func webView(webView: UIWebView!, shouldStartLoadWithRequest request: NSURLRequest!, navigationType: UIWebViewNavigationType) -> Bool {
    let requestdescription:String = request.description;
    println(requestdescription);
    let Valueonly:String=getValueOnly(requestdescription);
    println(Valueonly);
    return true
}
在上面的代码中,我的requestdescription具有以下值:{URL:mylink:my%20own%20Value}

和getValueOnly,它剪切并通过requestdescription返回我自己的值


我们应该这样做吗

从UIWebView调用obj-c代码没有官方API,您的方法是可行的。但是,有一些更通用的方法可以做到这一点:


我建议使用request.URL.host,而不是使用辅助函数来检索它,并检查request.URL.scheme是否为QUALTOSTRING我的链接,以确保它不是正常的请求。顺便说一下,您可能不希望使用自定义方案执行任何请求,因此请返回false以避免出现这种情况。

谢谢您的解释。特别是计划和重新调谐假,如果它不是正确的计划是有帮助的。欢迎您!我也在我的应用程序中多次使用这种方法,希望将来能有更优雅的东西。
func webView(webView: UIWebView!, shouldStartLoadWithRequest request: NSURLRequest!, navigationType: UIWebViewNavigationType) -> Bool {
    let requestdescription:String = request.description;
    println(requestdescription);
    let Valueonly:String=getValueOnly(requestdescription);
    println(Valueonly);
    return true
}