我尝试在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
”
这是我们应该这样做的吗?
答案 0 :(得分:0)
从UIWebView
调用obj-c代码没有官方API,您的方法也可行。但是,有一些更通用的方法:
答案 1 :(得分:0)
我建议使用request.URL.host而不是使用辅助函数检索它,并检查request.URL.scheme是否为isEqualToString“我的链接”,以确保它不是一些正常的请求。顺便说一句,你可能不希望真正执行任何自定义方案的请求,所以返回false以避免这种情况。