Swift H5 中 調起微信支付

   func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void) {
    
    print("scheme -------------- :\(navigationAction.request.url?.scheme)")
    print("schemeurl -------------- :\(navigationAction.request.url)")
    
    //獲取當前的url
    let curUrl = navigationAction.request.url
    let newcUrUrl =  curUrl?.absoluteString ?? ""
    // 去除原有的URL回調地址,換成自己的配置
    if (newcUrUrl.hasPrefix("https://wx.tenpay.com/cgi-bin/mmpayweb-bin/checkmweb")) {
        
        let dic = navigationAction.request.allHTTPHeaderFields
        let refer = dic?["Referer"] ?? ""
        if refer != "dev.maas.chelaile.net.cn://"{

            decisionHandler(WKNavigationActionPolicy.cancel)

            //對微信的url 進行處理 拼接 App 的標識
            var lastURL = curUrl?.absoluteString ?? ""                
            let req = NSMutableURLRequest(url: URL(string: lastURL)!)
            req.httpMethod = "GET"
            req.setValue("dev.maas.chelaile.net.cn://", forHTTPHeaderField: "Referer")
            self._webView?.load(req as URLRequest)
            
            return;
        }
        decisionHandler(WKNavigationActionPolicy.allow)
    }else{
        decisionHandler(WKNavigationActionPolicy.allow)
    }
   
    if navigationAction.request.url?.scheme == "tel" {
        //吊起撥打電話
        UIApplication.shared.openURL(navigationAction.request.url!);
        decisionHandler(WKNavigationActionPolicy.cancel)
    }
    
    let scheme = navigationAction.request.url?.scheme ?? ""
    if (scheme != "https" && scheme != "http") {
        if scheme == "weixin" {
            //調用微信
            UIApplication.shared.open(navigationAction.request.url!, options: [UIApplication.OpenExternalURLOptionsKey.universalLinksOnly:false]) { flag in }
            return
        }
        return
    }
}
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容