首页 > 编程知识 正文

苹果手机由于应用universallink,linkapp下载苹果端

时间:2023-05-05 05:53:42 阅读:115162 作者:4794

通用链路是iOS9推出的一项功能,它允许APP应用程序(微信、微博等)使用传统的HTTPS链路而不是方案启动APP。 如何理解通用链接通用链接:看起来像常见的https链接。 当然,这是您放置在此链接的域名根中的链接。 此外,还可以配置与此链接对应的H5页。 用户点击此链接后,如果手机上安装了与该链接对应的APP,就直接进入APP。 如果未安装APP,则跳至Safari浏览器,显示H5页。 对用户来说是无缝跳跃的过程。 通用链接(通用链接)的APP应用场景通用链接(Universal Link )允许用户在Safari浏览器或其他APP的webview上提升相应的APP,或使用APP支持的功能例如,淘宝在Safari浏览器中进入淘宝页面,点击打开APP,使用通用链接提升淘宝的APP。 与微信相关的内容(如微信支付和微信共享)已经使用通用链接进行了跳转。 这可能是一种趋势。 我们必须理解这个技术。 unuversal links:http://www.Sina.com / 1 .证书,标识符配置文件 2 .身份证明 选中关联的域(appid在创建开发中心时默认选中支持关联的域)。 如果未选中,则必须更改为支持关联域,然后重新下载并导入配置文件。 这是因为配置文件与AppID相关联。 (一.在苹果开发者中心配置 Associated Domains 作为重要的步骤,必须设置JSON文件。 创建空白文件。 (纯文本,名为apple-app-site-association,删除扩展名且不能包含扩展名。 )。 在此,建议后台或运输工程师在本地创建文件,以免在文件传输时自动格式化文件或自动添加后缀。 文件内容如下 { 'applinks': { 'apps': [],' details': [ { 'appID':xxxxx

xx.bbbbbb ',' paths': [ '*' ] } ] }}说明: 1。

配置Associated Domains
在其中的Domains中填入你想支持的域名,必须以applinks:为前缀,如:applinks:domain
如果上传人员给你的访问路径是:
https://www.baidu.com/.well-known/apple-app-site-association 或
https://www.baidu.com/apple-app-site-association
则Domains中填入:applinks:www.baidu.com
配置好后run起来。

这里你可以看到,这个Associated Domains是可以添加多个的。
五.验证我们的通用链接是否生效
1.使用我们的苹果手机备忘录。先在Xcode中配置好了Associated Domains,苹果开发者中心也配置好,导入描述文件,然后将App安装到你的手机真机上。最后在你的手机真机的备忘录中输入你的链接,点击你备忘录中的链接能直接打开你手机上的App,或者长按备忘录的链接,出现“在“xxxx”中打开”对话框,点击对话框也可以打开你的App即为成功.

2.使用iPhone的Safari浏览器。在浏览器中输入链接,输入过后,往下滑,顶部会出现“提示条”,提示“在“xxxxx”App中打开”,然后点击右侧的“打开”,如果能打开你的App,即为成功.

这里发生过一个小事故,我在Safari浏览器中输入链接的时候,往下拉一直不出现此提示条,就很纳闷。虽然上面的几个链接在备忘录中都可以打开我们的App,但是在浏览器中不都是可以出现提示条的。经过我不断的尝试我在https://class.xxxx.com/app/输入浏览器才出现提示条,也就是我在后面加了一个"/app/",才出现提示条,这可能和后台或者运维的配置有关,网上的其他通用链接教程,是没有我这一步的,也没有遇见谁提及到了此处.

3.使用苹果官方的检测通用链接的网址.地址是:https://search.developer.apple.com/appsearch-validation-tool/
这玩意其实是有点坑的,你将你的链接输入进去,不报红就可以了。检测的到的话,会出来你App的名字,logo图标啥的,我之前的App可以检查到,新编写的项目死活检查不到,还以为哪里搞错了,结果硬着头皮申请了微信分享,测试,上架AppStore过后,结果还是检查不到,但是功能都是完全正常的,卡在这里卡了好久,一直检测不到,你说坑不坑.
六.代码. 跳转回 APP 的处理
当点击某个链接,直接可以进我们的app了,但是我们的目的是要能够获取到用户进来的链接,根据链接来展示给用户相应的内容。
我们需要在工程里的实现AppDelegate里对应的方法.上述配置和验证工作都完成过后,在Appdelegate中注入相关代码

- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray<id<UIUserActivityRestoring>> * _Nullable))restorationHandler { if ([userActivity.activityType isEqualToString:NSUserActivityTypeBrowsingWeb]) { NSString *urlStr = userActivity.webpageURL.absoluteString; if ([urlStr isEqualToString:@"https://class.xxxxxxxx.com/app/apple-app-site-association"]) {//这里好像也可以使用链接的其他写法比如:class.xxxxxxxx.com这样就行,没有实验过. return YES; } } return [self UMApplication:application continueUserActivity:userActivity restorationHandler:restorationHandler];// 这里其实是我封装了友盟的相关东西. }

七.注意事项
注意事项我只是总结了我遇到的问题,欢迎大家补充.
1.手机上必须安装你需要跳转的应用并配置Associated Domains,才能验证成功.
2.Universal Link必须要求跨域,如果不跨域,就不会跳转(iOS 9.2之后的改动).
3.服务器上apple-app-site-association的更新不会让iOS本地的apple-app-site-association同步更新,即iOS只会在App第一次启动时请求一次,以后除非App更新或重新安装,否则不会在每次打开时请求apple-app-site-association
4.只有当前webview的URL域名,与跳转目标URL域名不一致时,Universal Link(通用链接)才生效。
5.域名必须需要为可以访问的,必须使用https://有效证书托管文件,并且没有重定向.
6.域名最好不要与 app 接口域名一样,这与微信分享有关.
7.文件的URL应符合以下格式:https:///.well-know/apple-app-site-association

八.微信的要求
说白了,现在的通用链接都是给鹅厂产品搞的,比如微信和QQ,贼烦.

1.Universal Links必须支持https
2.Universal Links配置的paths不能带query参数
3.微信使用Universal Links拉起第三方App时,会在Universal Links末尾拼接路径和参数,因此App配置的paths必须加上通配符**/*** (这一条来自其他教程,没有实验过,不过我在做微信分享的时候通用链接是以"/app/“结尾的,JSON文件是”/*"作为的paths值,原作者可能表达的是这个意思)

下面这张图是微信官方申请的时候要求截图:

4.通用链接代替了原白名单式的跳转方式,但是微信还是要求了我们配置了白名单,相当于两者都配置了。不理解其意。

5.如果要做微信分享啥的,加上这个吧.

当然info下面的URL Types你还是要搞的。

6.首先配置文件apple-app-site-association 不可以用MAC的文本编辑来编辑,后边再去除后缀.rtf并不可行 依然打不到目的。
QQ验证会报错:应用的Universal Link配置中不含互联信息 [errcode:1001:0]

使用Windows的记事本来编辑 微信可以成功设置,但是QQ依然会报错:
JSON 文件格式错误,请去掉 BOM 头 [errcode:1001:0]

所以最好是运维人员来配置这个文件。

解决方案:
使用VS Code新建文件-直接编辑代码-文件-另存为:

一定要选无扩展,然后文件放在域名根目录,这样QQ互联验证就成功了。

好的,问题是小细节有点多

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。