美文网首页
App跳转至App Store账户设置页面

App跳转至App Store账户设置页面

作者: Ssuperjoy | 来源:发表于2018-07-18 01:44 被阅读1231次

    为了方便用户充值,产品提出了一个新的需求,引导用户在App Store绑定支付宝或者微信,除了图文的教程外还需要做一个跳转,点击按钮跳转至App Store的账户设置页面,方便用户操作,并给出了知乎App中的一个具体案例:


    图一
    图二

    点击图一的“去绑定支付宝”跳转至图二,这样看似一个很简单的需求却遇到了坑(写这个主要是没有在网上找到相应的资料,让看到的人少走一些弯路,也记录下自己解决问题的过程)。
    最开始想到的是能不能通过像打开设置页面一样,通过类似于:

    NSString * urlScheme = @"App-Prefs:root=Bluetooth";// 蓝牙
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:urlScheme] options:@{} completionHandler:nil];
    

    通过一个特定的URL Scheme跳转至账户设置页,但是通过实践,发现在iOS11下甚至连上面例子中的蓝牙页面都跳不了,只能跳转至设置页面,这中方案肯定行不通。
    这个方案失败后在网上疯狂Google并查看文档,切换各种关键字和中英文,结果都没有找到解决方案,心理有点小失落,知乎不会是去苹果开通了什么VIP服务跳过去的吧(开玩笑)。。
    后面通过询问,发现有不少App都实现了这个跳转,这种大家都能做的需求,肯定有比较方便的解决方案,对比几个App的跳转,和直接跳转App Store的行为有些类似,我猜测应该是一段类似于跳转App Store的URL,但是这段URL是什么呢?网上也搜不到一点头绪,于是使用Charles对支付宝App的跳转进行了抓包(抓知乎的没有得到有效信息),终于有了收获(O(∩_∩)O哈哈~):


    图三
    图四

    我拦截了支付宝跳转时调用的链接,把返回的html代码从上往下看了一遍,发现了图四中的一段URL,非常有可能是跳转到账户设置页的URL,于是在自己的项目中进行测试:

    NSURL *accountUrl = [NSURL URLWithString:@"https://finance-app.itunes.apple.com/account/edit?mt=8"];
    if ([[UIApplication sharedApplication] canOpenURL:accountUrl]) {
        if (([[UIDevice currentDevice].systemVersion doubleValue] >= 10.0)) {
            [[UIApplication sharedApplication] openURL:accountUrl options:@{} completionHandler:nil];
        } else {
            [[UIApplication sharedApplication] openURL:accountUrl];
        }
    }
    

    最终成功实现了跳转,虽然只是个简单的功能,但最终能通过自己的思考和行动去解决问题还是挺开心的。

    转载请注明出处!

    相关文章

      网友评论

          本文标题:App跳转至App Store账户设置页面

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