您的位置:首页 > 其它

通用链接universal links中遇到的问题

2017-02-20 10:49 295 查看
Universal Links 现在已经在不少的app中被使用,未来我认为,几乎全部的iOS应用都会使用此功能。在微信中直接呼起app,多稳,毫无违和感。

关于universal links网上教程一篇篇的,大神们写的都很好,我也是参考其中的一些,才实现了这个功能,其中最好的教程当属wwdc上的视频了,由于英语水平有限,我对外语的教程是尽量拒绝的(因为没有字幕),但是看了之后才发现,真的是简单易懂。

而本篇文章是帮助我以后,及大家以后在配置universal links产生问题时,可以用来参考解决一些问题。

首先要确保一下几点:

1.entitlements中已添加associated domain,形如:applinks:你的https域名。



2.上传了apple-app-site-association文件到你的https根域名下,并且文件中details键下,准确的写对了键名:TeamId.AppId,例如:
{

"applinks": {

"apps": [],

"details": {

"G53MGMBNGQ.com.hg.testLinks": {

"paths":["*"]

}

}

}

}


3.在苹果开发者中心确认,你的项目的App IDs中是否开启了associated domain功能。



4.在上述操作之后,需要更新一下development的provisioning profiles,选择更新后的app id.

5.此时将app运行到测试机后(安装期间会请求根域名下的那个文件(你懂得)),在safari中输入https://你的域名,当然,会是一个404server error,此时下拉你的页面,将会出现:在###应用中打开,的一个悬浮条。



6.此时,可以兴奋一小会了,毕竟已经能再safari中打开我们的应用了。

7.我们的目的是在微信,qq等应用中呼起,可当我们将我们的https域名,输入在微信中,并且点击的时候,我们发现,真的皮,真的就是404server error,如何下拉都没用。我在此时,真的是有点心灰意冷了,不过老板的任务,不能不完成啊,强行google了一波,然后,我看到了:跨域,这个词很炫。

8.然后我也不确定是否可以,硬着头皮让前端同事,写了一个简单的页面,在一个与applinks中添加的域名不同的页面(要跨域),写了一个点击操作,跳转到applinks中所写的域名,然后在微信中,打开我们新搞得页面,点击,嗯,直接跳转到了我们的app中,大功告成!

9.然后我们下一步的完善工作是,呼起指定页面,
- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray * _Nullable))restorationHandler


就是这个函数了,可以跟前端约定一个规则,解url,然后跳转。

10.那么我们还需要做一些其他的支持,比如未安装app时,跳转到下载页面,ios9一下的用户也要做一些支持,这些地方处理好,我们的app就可以更新上线啦,嗯,完美~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息