5 xcode hyperlink uiwebview shouldstartload ios
我用Xcode和Swift制作了一个iOS应用程序.
我想在Safari浏览器中打开特定的超链接,在WebView本身中还有其他超链接.
为了实现这一点,我必须检查点击超链接的时间.
这是我到目前为止的代码:
//
// PushViewController.swift
// App
//
//
import UIKit
class PushViewController: UIViewController, UIWebViewDelegate {
@IBOutlet var openpushmessage: UIWebView!
var weburl:String = "http://www.example.com"
override func viewDidLoad() {
super.viewDidLoad()
let url: NSURL = NSURL(string: weburl)!
let requestURL: NSURLRequest = NSURLRequest(URL: url)
openpushmessage.loadRequest(requestURL)
}
override func webView(_ webView: UIWebView, shouldStartLoadWithRequest request: URLRequest, navigationType: UIWebViewNavigationType) -> Bool {
if navigationType == .linkClicked
{
print("You clicked a hypelink!")
}
return true
}
}
Run Code Online (Sandbox Code Playgroud)
代码viewDidLoad()打开从我的服务器加载主URL(http://www.example.com).这很好.
override fun webView[…]应检测是否单击了超链接然后print("You clicked a hypelink!").
但不幸的是,我收到以下错误:
我究竟做错了什么?如何摆脱这些错误?
请试试
对于swift 3.0
public func webView(_ webView: UIWebView, shouldStartLoadWith request: URLRequest, navigationType: UIWebViewNavigationType) -> Bool
{
if navigationType == .linkClicked
{
}
return true;
}
Run Code Online (Sandbox Code Playgroud)
迅捷2.2
internal func webView(webView: UIWebView, shouldStartLoadWithRequest request: NSURLRequest, navigationType: UIWebViewNavigationType) -> Bool
{
if navigationType == .LinkClicked
{
}
return true;
}
Run Code Online (Sandbox Code Playgroud)
小智 5
这是有效的解决方案(Xcode 7.3.1和Swift 2.2):
func webView(webView: UIWebView, shouldStartLoadWithRequest request: NSURLRequest, navigationType: UIWebViewNavigationType) -> Bool {
if request.URL?.query?.rangeOfString("target=external") != nil {
if let url = request.URL {
UIApplication.sharedApplication().openURL(url)
return false
}
}
return true
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8311 次 |
| 最近记录: |