关于wkwebview 页面内调用支付宝微信失败问题

在app 内部,使用wkwebview 加载URL,如果h5 需要吊起支付宝微信客户端支付,但是却不能吊起,解决方案如下:

在这个方法里实现如下判断:但微信一般不会走这里,会走失败的unsupport Url

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

    NSString *urlStr = [navigationAction.request.URL.absoluteString stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
    if ([urlStr containsString:@"alipay://"] || [urlStr containsString:@"weixin://"]) {
       
        [[UIApplication sharedApplication] openURL:navigationAction.request.URL options:@{} completionHandler:^(BOOL success) {
           
        }];
    }
 
    decisionHandler(WKNavigationActionPolicyAllow);
   
}



这两个方法内部实现微信吊起的问题

- (void)webView:(WKWebView *)webView didFailNavigation:(WKNavigation *)navigation withError:(NSError *)error{

[self handleError:error];

}

- (void)webView:(WKWebView *)webView didFailProvisionalNavigation:(WKNavigation *)navigation withError:(NSError *)error{

[self handleError:error];

}

- (void)handleError:(NSError *) error{

NSString *url= error.userInfo[@"NSErrorFailingURLStringKey"];

if ([NSObject nulldata:url]) {

if ([url containsString:@"weixin://"] ||[url containsString:@"alipay://"] ) {

NSURL *alipayURL = [NSURL URLWithString:url];

[[UIApplication sharedApplication] openURL:alipayURL options:@{} completionHandler:^(BOOL success) {

}];

}

}

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容