最近碰到一个需要用H5支付的商城,痛苦了一整天,查找了N多的资料,终于还是苦尽甘来了。话不多说,干货来了。我用的是WKWebView,套路是一样的。
1.首先,设置白名单,确保你能顺利跳转微信。
设置白名单
2.在webView的代理中,截获跳转微信的HTTP(下面的所有代码都是在这个方法中实现)
- (void)webView:(WKWebView*)webView decidePolicyForNavigationAction:(WKNavigationAction*)navigationAction decisionHandler:(void(^)(WKNavigationActionPolicy))decisionHandler;
代码如下:
NSURL*url = navigationAction.request.URL;
NSString*urlString = url.absoluteString;
//调用微信
if([urlStringrangeOfString:@"weixin://wap/pay"].location!=NSNotFound) {
//阻止跳转
decisionHandler(WKNavigationActionPolicyCancel);
BOOLcanOpen = [[UIApplicationsharedApplication]canOpenURL:url];
if(canOpen) {
[[UIApplication sharedApplication] openURL:url];
}
<