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
}
}
Swift H5 中 调起微信支付
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 今天公司产品过来交了个需求,App内部加载第三方的H5页面需要调起微信和支付宝进行支付,但是不是调起原生中集成的,...
- 由于公司的业务需要,为了节省申请开通微信支付的时间和人力,公司决定使用微信h5支付。这样即节省了时间,同时以后所有...
- 最近碰到一个需要用H5支付的商城,痛苦了一整天,查找了N多的资料,终于还是苦尽甘来了。话不多说,干货来了。我用的是...
- 项目开发遇到web页调起支付的功能,参考了网上很多资料,在此做个笔记,便于记忆,同时也希望帮助到遇到相同问题的小伙...