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

为了方便用户充值,产品提出了一个新的需求,引导用户在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];
    }
}

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

转载请注明出处!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    阳明AI阅读 16,347评论 3 119
  • APP的跳转: 通过[ [UIApplication sharedApplication] openURL:url...
    goyohol阅读 25,168评论 38 77
  • 提到写作,我是即羡慕、又无奈,羡慕别人优秀的作品是怎么写出来的,无奈是打小一听到老师说要写作文就头痛。一直都以为写...
    昕明阅读 135评论 0 0
  • 1,从本篇文章/音频/视频中我学到的最重要的概念 奥林匹克运动会的历史发展过程 2,我在本片文章/音频/视频中学到...
    刘梦园数学4班阅读 301评论 3 0
  • 五月,阳光正好。 强子刚帮人运完一车家具,正拉着他的木架子车在人行道上晃悠着往回走,汗水湿透了他的衬衣,散发着难闻...
    0ae5b651d9c6阅读 406评论 0 4

友情链接更多精彩内容