在UIWebview中拥有自己的链接

时间:2015-04-24 09:14:55

标签: ios swift uiwebview

我尝试在UIWebView中创建自己的行为链接。为此,我想阅读我自己的链接的价值。 我设法做到了,但是我想有人会对此进行评论,因为我不确定这是否是最佳做法? :-)(凌乱的代码?)

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

let myHTML:String="<a href=\"mylink:" + sLinkValue + "\">" + sDisplayText + "</a>";

我创建了一个UIWebView并显示HTML:

myWebView.loadHTMLString(htmlString, baseURL: noBase);
带有委托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具有以下价值:<NSMutableURLRequest: 0x7fad4ae21130> { URL: mylink:My%20own%20Value }

切换和过去请求描述的

getValueOnly会返回“My Own Value

这是我们应该这样做的吗?

2 个答案:

答案 0 :(得分:0)

UIWebView调用obj-c代码没有官方API,您的方法也可行。但是,有一些更通用的方法:

答案 1 :(得分:0)

我建议使用request.URL.host而不是使用辅助函数检索它,并检查request.URL.scheme是否为isEqualToString“我的链接”,以确保它不是一些正常的请求。顺便说一句,你可能不希望真正执行任何自定义方案的请求,所以返回false以避免这种情况。