微信通过页面(H5)直接打开本地app的解决方法


Posted in Javascript onSeptember 09, 2017

简述

微信中通过页面直接打开app分为安卓版和IOS版,两个的实现方式是完全不同的。

安卓版实现:使用腾讯的应用宝,只要配置了“微下载”之后,打开链接腾讯会帮你判断本地是否已经安装了app,如果本地安装就直接打开,没有安装的话就是腾讯微下载的页面进行app下载,当然微下载的页面腾讯提供了几个模板,可以自己选择和修改。

IOS实现:ios像直接点击链接打开本地app就难了,有两种方式可供我们选择:

1.腾讯深度合作的公司,微信可以帮你打开app;

2.使用IOS9+的新功能“Universal Links”(通用链接);

很显然,第二种方式更适合我们普通的公司。

效果展示

微信通过页面(H5)直接打开本地app的解决方法

实现步骤

1.配置https(必须是https)网站支持;

创建“apple-app-site-association”文件,注意不带后缀,放到网站根目录,确保可以使用:https://xxx.xxx.xxx/apple-app-site-association直接可以访问,apple-app-site-association文件内容如下:

{
  "applinks": {
    "apps": [],
    "details": [
      {
        "appID": "*****.com.gangguwang.yewugo",
        "paths": [ "/app/*" ]
      }
    ]
  }
}

其中appId是你的Prefix + ID,如图:

微信通过页面(H5)直接打开本地app的解决方法

paths为你链接拦截的地址,比如我上面填写的是“/app/*”,就是当我访问https://xxx.xxxx.xxx/app/x的时候,会打开本地app,其他连接时候则为正常显示,这个地址可以配置成多个,也可以直接写*;

2.配置苹果证书,开启“Associated Domains”,如下图:

Identifiers - App IDs ?Edit 然后开启打钩 Associated Domains 后保存,配置地址:https://developer.apple.com/account/ios/identifier/bundle

微信通过页面(H5)直接打开本地app的解决方法

3.配置你的App的Universal Links(通用链接)

如果你是普通的ios项目的的话,配置如下:项目 targets->Capabilities->Associated Domains,如图填写你的链接域名

微信通过页面(H5)直接打开本地app的解决方法

域名的格式必须为:applinks:你的域名(ex:applinks:www.domain.com),可以配置多个;

如果你是Xamarin项目的话,需要选择Entitlements.plist配置关联域,如图:

微信通过页面(H5)直接打开本地app的解决方法

这样配置完之后,打包即可测试你的应用咯。

官方配置文件:https://developer.apple.com/library/content/documentation/General/Conceptual/AppSearch/UniversalLinks.html

注意事项

1.配置的网站必须是https,不能为http;

2.[重要]展示地址和打开的地址不能在一个域名下(作者测试发现放在同一服务器下都不行),比如展示页的地址是https://a.domain.com/?id=10,打开的如果是https://a.domain.com/app/?id=10,系统默认是打开页面,而不是触发通用链接打开app;

3.[重要]配置玩证书之后需要更新证书,才能内部打包和提测上传成功;

4.通用链接可被屏蔽,点击右上角配置的链接之后,通用链接就失效了,解决方案下次讨论。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
基于jquery1.4.2的仿flash超炫焦点图播放效果
Apr 20 Javascript
js菜单点击显示或隐藏效果的简单实例
Jan 13 Javascript
js隐式全局变量造成的bug示例代码
Apr 22 Javascript
浅析$(function) ready和onload 的区别
Sep 03 Javascript
Node学习记录之cluster模块
May 31 Javascript
老生常谈js数据类型
Aug 03 Javascript
Angular4学习笔记之根模块与Ng模块
Sep 09 Javascript
利用express启动一个server服务的方法
Sep 17 Javascript
bootstrap 点击空白处popover弹出框隐藏实例
Jan 24 Javascript
JavaScript遍历查找数组中最大值与最小值的方法示例
May 24 Javascript
javascript中的offsetWidth、clientWidth、innerWidth及相关属性方法
May 14 Javascript
解决vue prop传值default属性如何使用,为何不生效的问题
Sep 21 Javascript
React-Native中禁用Navigator手势返回的示例代码
Sep 09 #Javascript
js实现音乐播放控制条
Sep 09 #Javascript
Vue2.0用 watch 观察 prop 变化(不触发)
Sep 08 #Javascript
详解vue2 $watch要注意的问题
Sep 08 #Javascript
Express + Session 实现登录验证功能
Sep 08 #Javascript
Vue中组件之间数据的传递的示例代码
Sep 08 #Javascript
详解jquery插件jquery.viewport.js学习使用方法
Sep 08 #jQuery
You might like
php木马攻击防御之道
2008/03/24 PHP
php检测文件编码的方法示例
2014/04/25 PHP
网页的分页下标生成代码(PHP后端方法)
2016/02/03 PHP
Yii2实现上下联动下拉框功能的方法
2016/08/10 PHP
php+jquery+html实现点击不刷新加载更多的实例代码
2016/08/12 PHP
详解PHP用substr函数截取字符串中的某部分
2016/12/03 PHP
PHP autoload使用方法及步骤详解
2020/09/05 PHP
一段非常简单的让图片自动切换js代码
2006/11/10 Javascript
javascript-TreeView父子联动效果保持节点状态一致
2007/08/12 Javascript
JavaScript中的一些定位属性[图解]
2010/07/14 Javascript
JavaScript实现自动变换表格边框颜色
2015/05/08 Javascript
ECMAScript6轮播图实践知识总结
2016/08/17 Javascript
浅析vue数据绑定
2017/01/17 Javascript
js数字计算 误差问题的快速解决方法
2017/02/28 Javascript
使用canvas及js简单生成验证码方法
2017/04/02 Javascript
自定义vue全局组件use使用、vuex的使用详解
2017/06/14 Javascript
打造通用的匀速运动框架(实例讲解)
2017/10/17 Javascript
完美解决iview 的select下拉框选项错位的问题
2018/03/02 Javascript
vue中如何实现pdf文件预览的方法
2018/07/12 Javascript
Bootstrap Table中的多选框删除功能
2018/07/15 Javascript
Vuex mutitons和actions初使用详解
2019/03/04 Javascript
在vue-cli中引入lodash.js并使用详解
2019/11/13 Javascript
[03:04]2018年度DOTA2玩家最喜爱的主播-完美盛典
2018/12/16 DOTA
Python装饰器(decorator)定义与用法详解
2018/02/09 Python
python3+PyQt5实现自定义流体混合窗口部件
2018/04/24 Python
美国创意之家:BulbHead
2017/07/12 全球购物
重新定义牛仔布,100美元以下:Warp + Weft
2018/07/25 全球购物
上班睡觉检讨书
2014/01/09 职场文书
优秀高中生事迹材料
2014/02/11 职场文书
欠款证明
2015/06/24 职场文书
七年级数学教学反思
2016/02/17 职场文书
职场干货:简历中的自我评价应该这样写!
2019/05/06 职场文书
Jupyter Notebook 如何修改字体和大小以及更改字体样式
2021/06/03 Python
Python OpenCV 图像平移的实现示例
2021/06/04 Python
8个JS的reduce使用实例和reduce操作方式
2021/10/05 Javascript
MySQL添加索引特点及优化问题
2022/07/23 MySQL