【发布时间】:2022-11-07 12:26:20
【问题描述】:
[![在此处输入图像描述][1]][1] [1]:https://i.stack.imgur.com/7FUgg.png
单击通话按钮(电话图标)时,我想打开一个电话号码警报表(例如+ 91-1234567890)。 我的图像显示了在我的应用程序中调用的网页页面,并且我在代码中使用了 WebKit。
我尝试过的, 我是 webkit 的新手,帮帮我。
import UIKit
import WebKit
import Alamofire
class ContinueViewController: UIViewController, WKUIDelegate {
func getPostString(params:[String:Any]) -> String{
var data = [String]()
for(key, value) in params
{
data.append(key + "=\(value)")
}
return data.map { String($0) }.joined(separator: "&")
}
@IBOutlet weak var activityView: UIActivityIndicatorView!
@IBOutlet weak var webview: WKWebView!
var url: URL?
var id = 0, skill = 0
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
if #available(iOS 14.0, *) {
webview.configuration.defaultWebpagePreferences.allowsContentJavaScript = true
}else {
let preferences = WKPreferences()
preferences.javaScriptEnabled = true
let configuration = WKWebViewConfiguration()
configuration.websiteDataStore = WKWebsiteDataStore.nonPersistent()
configuration.preferences = preferences
}
webview.navigationDelegate = self
self.navigationController?.navigationBar.isHidden = true
webview.uiDelegate = self
}
override func viewDidLoad() {
super.viewDidLoad()
activityView.startAnimating()
guard let url = self.url else { return }
var req = URLRequest(url: url)
let params = ["id" : id,"skill" : skill]
let postString = self.getPostString(params: params)
req.addValue("application/x-www-form-urlencoded", forHTTPHeaderField: "Content-Type")
req.httpMethod = "POST"
req.httpBody = postString.data(using: .utf8)
self.webview.load(req)
}
}
extension ContinueViewController: WKNavigationDelegate {
func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
activityView.stopAnimating()
}
}
【问题讨论】:
-
呼叫按钮如何处理
onClick事件?它是否使用href将页面重定向到tel:xxxxxxxxxx之类的东西?如果是,您需要在WKNavigationDelegate上处理webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void)。 -
是的,它使用如下代码的href。 <a style="pointer-events:block" href="tel:00000000" class="btn-form next_step cst d-block mx-auto my-4">点击致电我们</a>