您的位置:首页 > 移动开发

iOS 微信打开第三方应用(微信跳转第三方app)(Universal Links)

2017-06-30 16:25 861 查看
iOS应用可以使用 URL Schemes 进行应用间的跳转或实现网页打开应用的功能,这种跳转是协议跳转。

要应用间能跳转就要遵循URL Schemes协议。

要网页跳转应用网页就要遵循URL Schemes协议。

所以这就出现了微信或QQ等知名应用不能打开第三方应用的问题,不能打开是因为微信和QQ使用的是自己研发的QQ浏览器,他不遵循URL Schemes这个协议。

实例演示:(下载
卡惠应用 查看效果):注: kahui.huankaun.com 就是你服务器的域名

1,问题具备的场景

(1)第三方应用集成了友盟分享到QQ和微信的功能

(2)第三方应用分享了一个web页面到微信或QQ

(3)打开分享的web页面,点击上面的某一个按钮

(4)如果用户安装了该应用,直接打开应用根据web地址中的参数跳转到对应的页面

(5)如果用户没有安装应用,直接跳转到appStore

2,实用的技术:iOS9 之后提供的 Universal Links 功能

3,实现步骤

(1)创建一个json文件,名称必须为 apple-app-site-association,⚠️该文件不可带 .json 的后缀名

         apple-app-site-association 文件必须放在https服务器的根目录下,例:https://kahui.huankaun.com 这个路径下 ⚠️一定是根目录,也就是说该文件必须是一级目录,供下载使用

         apple-app-site-association 文件格式:如代码 1

         teamID:打开苹果官网,点击Account,点击左边栏的 Membership,查找teamID 如图 1

         paths:定义的web页面的地址,*表示 kahui.huankaun.com 这个路径下的任何子路径,也可以指定固定跳转的页面例:/index.php

(2)确保使用 https://kahui.huankaun.com/apple-app-site-association 这个链接可以在 苹果的验证网站 访问得到,正确的访问结果为 如图2

(3)进入开发者网站,找到你自己的bundleId,可以点击edit按钮,开启associate
domains,并创建相应的provisioning Profiles,如图 3

(4)在项目的Capablities中开启Associated domains,添加
applinks:kahui.huankaun.com,如图
4

(5)在appdelegate中实现上面这个方法,当使用Universal Links唤醒app时就执行这个方法:如代码
2

(6)快捷验证,在备忘录中输入https://kahui.huankaun.com/...,常按这个链接,出现使用第三方应用打开表示已经成功,如图
5

(7)当没有安装该应用时的处理方式是:上传该html文件到
kahui.huankaun.com 路径下,如代码 3

       


























代码1
{
"applinks": {
"apps": [],
"details": [
{
"appID": "teamID.bundleId",
"paths": ["*"]
}
]
}
}


代码2
- (BOOL)application:(nonnull UIApplication *)application continueUserActivity:(nonnull NSUserActivity *)userActivity restorationHandler:(nonnull void (^)(NSArray * __nullable))restorationHandler{}

代码3
<!DOCTYPE html>
<html lang="en" >
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />
<meta http-equiv="Pragma" content="no-cache" />
<meta http-equiv="Expires" content="0" />
<meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no, width=device-width">
<title>上新-跳转中...</title>

</head>
<body>
<script type="text/javascript">
setTimeout(function(){
window.location = "第三方在应用宝的下载链接"
},3000)

</script>

</body>
</html>


  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: