微信通过页面(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 相关文章推荐
33个优秀的 jQuery 图片展示插件分享
Mar 14 Javascript
Jquery ajaxStart()与ajaxStop()方法(实例讲解)
Dec 18 Javascript
jQuery实现购物车数字加减效果
Mar 14 Javascript
$.extend 的一个小问题
Jun 18 Javascript
JS组件Bootstrap Table表格多行拖拽效果实现代码
Dec 08 Javascript
javascript的BOM
May 03 Javascript
Jquery实现遮罩层的简单实例(就是弹出DIV周围都灰色不能操作)
Jul 14 Javascript
JS中的hasOwnProperty()和isPrototypeOf()属性实例详解
Aug 11 Javascript
JS使用正则截取两个字符串之间的字符串实现方法详解
Jan 06 Javascript
深入解读Node.js中的koa源码
Jun 17 Javascript
浅谈目前可以使用ES10的5个新特性
Jun 25 Javascript
vue项目打包之开发环境和部署环境的实现
Apr 23 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
一台收音机,让一家人都笑逐颜开!
2020/08/21 无线电
如何开始收听短波广播
2021/03/01 无线电
PHP访问MYSQL数据库封装类(附函数说明)
2010/12/04 PHP
浏览器关闭后,能继续执行的php函数(ignore_user_abort)
2012/08/01 PHP
PHP模板引擎Smarty之配置文件在模板变量中的使用方法示例
2016/04/11 PHP
Jquery获取复选框被选中值的简单方法
2013/07/04 Javascript
Jquery动态更改一张位图的src与Attr的使用
2013/07/31 Javascript
JavaScript实现关键字高亮功能
2014/11/12 Javascript
jQuery不兼容input的change事件问题解决过程
2014/12/05 Javascript
深入理解JavaScript系列(29):设计模式之装饰者模式详解
2015/03/03 Javascript
JS+CSS实现Div弹出窗口同时背景变暗的方法
2015/03/04 Javascript
ECMAScript6块级作用域及新变量声明(let)
2015/06/12 Javascript
代码分析jQuery四种静态方法使用
2015/07/23 Javascript
jquery.cookie.js用法实例详解
2015/12/25 Javascript
详解vue-router 2.0 常用基础知识点之router-link
2017/05/10 Javascript
pace.js和NProgress.js两个加载进度插件的一点小总结
2018/01/31 Javascript
JavaScript中call和apply方法的区别实例分析
2018/08/03 Javascript
layui加载数据显示loading加载完成loading消失的实例代码
2019/09/23 Javascript
js脚本中执行java后台代码方法解析
2019/10/11 Javascript
jQuery Datatables 动态列+跨列合并实现代码
2020/01/30 jQuery
Vuex的各个模块封装的实现
2020/06/05 Javascript
python发腾讯微博代码分享
2014/01/10 Python
python中argparse模块用法实例详解
2015/06/03 Python
详解Python 实现元胞自动机中的生命游戏(Game of life)
2018/01/27 Python
Python学习笔记之列表和成员运算符及列表相关方法详解
2019/08/22 Python
python GUI库图形界面开发之pyinstaller打包python程序为exe安装文件
2020/02/26 Python
Python GUI编程学习笔记之tkinter界面布局显示详解
2020/03/30 Python
PyTorch中的C++扩展实现
2020/04/02 Python
Python按照list dict key进行排序过程解析
2020/04/04 Python
在对linux系统分区进行格式化时需要对磁盘簇(或i节点密度)的大小进行选择,请说明选择的原则
2012/01/13 面试题
社会实践活动总结报告
2014/04/29 职场文书
经济贸易专业自荐信
2014/06/11 职场文书
2016年大学光棍节活动总结
2016/04/05 职场文书
【海涛解说】暗牧也疯狂,牛蛙成配角
2022/04/01 DOTA
如何通过一篇文章了解Python中的生成器
2022/04/02 Python
redis lua限流算法实现示例
2022/07/15 Redis