h5支付不能打开支付宝 ios_iOS WKWebview中无法调起支付宝/微信客户端支付问题的解决方法...

这两个的解决思路都是要在下面这个方法中先拦截相应的url,再单独处理

- (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler;

支付宝拦截到的url样式如下:

支付宝:alipay://alipayclient/?{"dataString":"h5_route_token="bf7ace48916875f26c94fba6f62226ef"&is_h5_route="true"","requestType":"SafePay","fromAppUrlScheme":"alipays"}

微信:weixin://wap/pay...

具体代码如下:

- (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler{

NSURL *URL = navigationAction.request.URL;

NSString * urlStr = [[URL absoluteString] stringByRemovingPercentEncoding];

if ([urlStr containsString:@"weixin://wap/pay"] || [urlStr containsString:@"alipay://alipayclient"]) {

[[UIApplication sharedApplication] openURL:navigationAction.request.URL];

decisionHandler(WKNavigationActionPolicyCancel);

}

else{

// 在发送请求之前,决定是否跳转

decisionHandler(WKNavigationActionPolicyAllow);

}

}


版权声明:本文为weixin_39726131原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。