我有一个由本地HTML文件组成的应用程序。
所有tel:links和mailto:工作正常,并在iOS上打开电话和邮件,但当我使用简单的HTML链接到网站时,没有任何反应,
这是我的代码,任何输入都将不胜感激。
此致
萨姆
/v1/auth/login
这是请求的HTML代码。这是请求的HTML代码。这是请求的HTML代码。这是请求的HTML代码。这是请求的HTML代码。这是请求的HTML代码。这是请求的HTML代码。这是请求的HTML代码。这是请求的HTML代码。这是请求的HTML代码。这是请求的HTML代码。这是请求的HTML代码。这是请求的HTML代码。这是请求的HTML代码。这是请求的HTML代码。这是请求的HTML代码。这是请求的HTML代码。这是请求的HTML代码。这是请求的HTML代码。这是请求的HTML代码。这是请求的HTML代码。这是请求的HTML代码。这是请求的HTML代码。
my-backend-service-project.appspot.com/v1/
答案 0 :(得分:0)
实施UIWebViewDelegate
并将代理人分配给webview
webview.delegate = self
,以识别点击后的链接
试试这个
class ViewController: UIViewController,UIWebViewDelegate {
@IBOutlet weak var webView: UIWebView!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
webview.delegate = self
loadHtmlFile()
}
func loadHtmlFile() {
let url = Bundle.main.url(forResource: "index", withExtension:"html")
let request = NSURLRequest(url: url!)
webView.loadRequest(request as URLRequest)
webView.scrollView.bounces = false;
webView.isOpaque = false;
}
func webView(_ webView: UIWebView, shouldStartLoadWith request: URLRequest, navigationType: UIWebViewNavigationType) -> Bool {
if navigationType == .linkClicked {
if let url = request.url {
UIApplication.shared.openURL(url)
return false
}
}
return true
}
}
答案 1 :(得分:0)
@Sam Manser尝试使用WKWebView而不是UIWebView。因为UIWebView是从iOS 11中删除的。当你点击你的链接时,它正在导航到safari浏览器完美。
Swift 4
import UIKit
import WebKit
class ViewController: UIViewController , WKUIDelegate , WKNavigationDelegate {
@IBOutlet weak var indeWebView: WKWebView!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
loadButtonHTMLFile()
}
func loadButtonHTMLFile() {
let url = Bundle.main.url(forResource: "index", withExtension:"html")
indeWebView.uiDelegate = self
indeWebView.navigationDelegate = self
indeWebView.scrollView.bounces = false
indeWebView.load(URLRequest(url: url!))
}
//Open Tapped Link in Safari
func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Swift.Void) {
if navigationAction.navigationType == WKNavigationType.linkActivated {
if let url = navigationAction.request.url {
UIApplication.shared.open(url, options: [:], completionHandler: nil)
}
}
// Call this completion handler compulsary
decisionHandler(WKNavigationActionPolicy.allow)
}
}