美文网首页
判断支付宝是网页支付还是app支付

判断支付宝是网页支付还是app支付

作者: AI衣衣 | 来源:发表于2018-05-18 10:49 被阅读0次

最近调用支付宝时因业务需求,需要判断支付宝是走网页支付还是走手机app支付,网上一搜一堆说的同样的方法,用判断scheme是否跳转的方式,代码如下:

NSURL * myURL_APP_A = [NSURL URLWithString:@"alipay:"];
    if (![[UIApplication sharedApplication] canOpenURL:myURL_APP_A]) {
        //如果没有安装支付宝客户端那么需要安装
        UIAlertView *message = [[UIAlertView alloc]initWithTitle:@"提示信息" message:@"点击确定安装支付宝钱包!" delegate:self cancelButtonTitle:@"确定" otherButtonTitles: nil];
        [message show];
        return;
    } 

可是本人亲测,此法没用。无论手机是否安装支付宝app,他都会跳转到canOpenURL = Yes的状态。
于是分析如果没安装支付宝时,支付宝弹出来网页,它是在支付的vc中加了一个WebView,找到源头,就可以判断如果有这个WebView,就说明是跳转的网页支付,如果没有,就是手机app支付。
代码如下:

    AppDelegate *delegate = (AppDelegate *)[UIApplication sharedApplication].delegate;
    UIViewController *topVC = [delegate topViewController];
    if([topVC isKindOfClass:[self class]])
    {
        UIWindow *keyWindow = [UIApplication sharedApplication].keyWindow;
        for(UIView *sbView in keyWindow.subviews)
        {
            for(UIView *sv in sbView.subviews)
            {
                if([sv isKindOfClass:[UIWebView class]])
                {
                    for(UIView *subV in sv.subviews)
                    {
                        // APH5ProgressView
                        if([subV isKindOfClass:NSClassFromString(@"APH5ProgressView")])
                        {
                            //支付宝网页付款进度条
                            return;
                        }
                        
                    }
                }
                
            }
        }
        
    }

相关文章

  • 判断支付宝是网页支付还是app支付

    最近调用支付宝时因业务需求,需要判断支付宝是走网页支付还是走手机app支付,网上一搜一堆说的同样的方法,用判断sc...

  • web开发中的支付宝支付和微信支付

    支付宝支付分为支付宝app内的网页支付和app外(即普通浏览器)网页支付,同样微信支付也分为微信app内的支付(在...

  • Android支付——支付宝支付

    相比之前的支付宝sdk,新版的sdk不再判断App客户端是否安装了支付宝客户端。如果用户安装了支付宝,将跳到支付宝...

  • App支付时序图

    微信App支付 支付宝App支付

  • 就像在知乎上:我来怒答一下

    细数支付宝支付接入的种种 我只用过网页支付和手机版网页支付,APP 相关完全不懂 我具体只看过即时到帐相关的两个 ...

  • WebView内存泄露与跨进程通信

    需求 用WebView加载网页商城,内存泄露问题 商城调用APP支付(微信支付和支付宝支付) 解决方案 针对需求1...

  • 微信支付

    微信支付 VS 支付宝支付(1)没有安装微信app,是不能进行微信支付的(2)没有安装支付宝app,也能支付,支付...

  • Android:支付宝支付封装

    集成支付宝APP支付 直接按照官方文档逐步集成官方文档:支付宝APP支付官方文档 Android客户端封装支付宝支...

  • 三方支付流程总结

    支付宝支付和微信支付 支付宝支付流程图: 支付宝支付: 当我们选择点击了支付宝支付按钮开始 1.app选择商品进行...

  • iOS 微信代扣开发流程

    123 一:介绍 项目中要用到支付功能,需要支付宝支付、支付宝网页支付、微信支付、银联支付、Apple_pay、微...

网友评论

      本文标题:判断支付宝是网页支付还是app支付

      本文链接:https://www.haomeiwen.com/subject/rzbwdftx.html