传统的方式是通过URL Scheme的方式,但是iOS9以后又出了新的更完美的方式Universal Links。

传统的URL Scheme方式微信内置的浏览器都是封锁了所有它投资的公司之外的,只有白名单的才可以(比如京东,B站,等)。Universal Links也不能算是完美的实现,但是已经是目前为止最好的了。

就说一下这个东西的介绍,就像在windows里面为某一类型的文件添加了默认的打开方式。只不过这个文件类型变成了某一个“域名”(并非完全是某个域名,或者可以称之为某段有特殊意义的URL)的URL。这个东西只能在iOS9以后才有。

具体的表现在在iOS系统中,当你邮件或者短信或者其他方式收到含有某段“特定标示”的URL的时候如果安装有你的app,就可以直接默认调用app去打开,否则只能调用你的Safari去打开。具体到微信里面就是打开了分享的H5,右上角更多-在Safari中打开,可以直接调用你的app去打开这个URL。具体在app的中怎么展示相关的逻辑就看你的了。

具体介绍的相关文章:

苹果文档:https://developer.apple.com/library/ios/documentation/General/Conceptual/AppSearch/UniversalLinks.html

苹果检测链接有效性:https://search.developer.apple.com/appsearch-validation-tool/

很棒的一个英文的步骤文章:https://blog.branch.io/how-to-setup-universal-links-to-deep-link-on-apple-ios-9

相关的文章:http://www.jackivers.me/blog/2015/9/17/list-of-universal-link-ios-9-apps

      http://tech.glowing.com/cn/deferred-deep-linking-and-branch-sdk-in-ios/(URL Scheme和Universal Links优缺点介绍的很棒,这个团队的技术博客也很不错哦)

      http://www.cocoachina.com/ios/20150911/13321.html(里面的那个运行流程的总结图很不错)

具体的步骤就不再赘述了,因为无论是官方文档,还是其他人写的文章都很棒了,我就说一下实际开发中可能遇到的的坑。

1.注意拼写那个json文件的时候,应该是你的开发者中心,Identifiers---App IDs--- 应用的证书名字(bundle id所有对应的那个)---Prefix
.英文的点号,再跟上你的bundle id。并且文件的名字必须为“apple-app-site-association”,不能自己私自定义。用浏览器打开https://<domain>/apple-app-site-association文件,看一下成功否就可以了。

2.生成后的json文件一定是要放到你的那些网页所在的站点的目录下面的HTTPS web server根目录下面。比如你的网站是https://www.google.com(所有的网页都是以这个开头的),然后你应用的地址baseurl是https://api.google.com,其实你应该放在www的那个HTTPS web server根目录下面。然后过两三分钟吧,就用苹果有效性检测工具的那个去试一下,找一个你要分享出去的h5链接试一下,只要不出错,出来很多的相关信息就可以了(就跟用这个URL测试出来的结果一样就可以了https://www.yelp.com/biz/michael-winnetka)。

3.在工程的设置Associated Domains的时候,一定先要去苹果的开发者中心打开你的应用证书Associated Domains Enabled。然后记得更新你的证书关联的东西,然后更新本地的证书。才可以打开工程的Associated Domains。记住填写链接的时候是applinks:<domain>。这个<domain>就是第1点中调试通的那个(如果你的应用的api的和页面的不区分服务器就一样了)。

4.然后编译你的应用。如果你在短信中含有类似的https://<domain>?a=1&b=2 已经通过了后,直接长按会出来“在“XXX”中打开”就说明成功了。可以去微信微博等其他的地方去看看了。

转自:https://www.cnblogs.com/ysk-china/p/5777299.html

iOS微信打开App的更多相关文章

  1. iOS 微信打开第三方应用(Universal Links 和 URL Schemes)

    一.前言 项目中时常有这种需求, 是通过链接跳转到应用内部,现在iOS主流的方案有两个 Schema: 常用在于一个应用跳转到另一个应用内部,属于应用间的跳转.当然ios9以下,网页可以通过schem ...

  2. HBuilder连接IOS手机打开APP测试

    HBuilder是专为前端打造的开发工具,具有最全的语法库和浏览器兼容数据,以方便制作手机APP,最保护眼睛的绿柔设计等优点在近几年盛行: 开发移动端APP项目想要在手机真机上测试: 首先打开HBui ...

  3. ios微信打开网页键盘弹起后页面上滑,导致弹框里的按钮响应区域错位

    input失去焦点,页面被顶起没有还原,所以就有以下的方法来处理 $("input").blur(function(){   setTimeout(() => {    co ...

  4. 微信扫描打开APP下载链接提示代码优化

    上一次我发了一篇文章叫“微信打开网址添加在浏览器中打开提示”,里面我发出来了三个代码,分别是纯JS.js+html.jQuery+HTML代码.今天来一个简化版带可以关闭的按钮操作.使用的是纯JS+H ...

  5. 微信扫描打开APP下载链接提示代码优化(转)

    上一次我发了一篇文章叫“微信打开网址添加在浏览器中打开提示”,里面我发出来了三个代码,分别是纯JS.js+html.jQuery+HTML代码.今天来一个简化版带可以关闭的按钮操作.使用的是纯JS+H ...

  6. iOS H5页面打开APP技术总结

    iOS端H5页面打开APP的方式目前主要有两种:URL Scheme和Universal Links.其中Universal Links是iOS9.0以后推出的一种新的方案,由于它需要在iOS9.0以 ...

  7. 实现微信浏览器内打开App Store链接(已被和谐,失效了)

    微信浏览器是不支持打开App Store 页面的,不知道微信为什么这么做.比如你页面写 <a href=”http://itunes.apple.com/us/app/id399608199″& ...

  8. 解决ios下的微信打开的页面背景音乐无法自动播放

    后面的项目发现,还有两个坑,需要注意下: ·本文的解决方案的核心是利用了 微信/易信 在ready的时候会有个 WeixinJSBridgeReady/YixinJSBridgeReady事件,通过监 ...

  9. 实现微信浏览器内打开App Store链接

    http://www.ildsea.com/1781.html 微信浏览器是不支持打开App Store 页面的,不知道微信为什么这么做.比如你页面写 <a href=”http://itune ...

随机推荐

  1. git 清除历史

    http://stackoverflow.com/questions/9683279/make-the-current-commit-the-only-initial-commit-in-a-git- ...

  2. struts2 在拦截器进行注入(依据Action是否实现自己定义接口)

    比如:经常在Action中都须要获取当前登录的User,就须要获取Session.然后从Session获取当前登录的User,由于这些步骤都是反复操作,能够想办法在拦截器中进行实现.能够自己定义一个接 ...

  3. Atitit.ati orm的设计and架构总结 适用于java c# php版

    Atitit.ati orm的设计and架构总结 适用于java c# php版 1. Orm的目标1 1.1. 动态obj1 1.2. Hb的api(meger,save,update,del)1 ...

  4. lseek,fcntl,ioctl函数

    函数说明:每一个已打开的文件都有一个读写位置, 当打开文件时通常其读写位置是指向文件开头, 若是以附加的方式打开文件(如O_APPEND), 则读写位置会指向文件尾. 当read()或write()时 ...

  5. 脚本 sh 和 ./ 的区别,exec和source

    如果.不在PATH里面,要执行当前目录下的可执行文件,使用全路径: ./executable-file PATH是环境变量,如果将当前目录“./”添加到环境变量中,那么也可以不用“./”,直接输入当前 ...

  6. Swift培训

    本篇是Swift内部培训整理的PPT材料,主要内容来源于苹果Swift编程语言官方教程,参考了网上的一些视频课程内容.在教程介绍完之后,本人附带实现了一个项目开发中的常用场景的Demo:基于导航栏和T ...

  7. poj3422 拆点法x->x'建立两条边+最小费用最大流

    /** 题目:poj3422 拆点法+最小费用最大流 链接:http://poj.org/problem?id=3422 题意:给定n*n的矩阵,含有元素值,初始sum=0.每次从最左上角开始出发,每 ...

  8. Python中如何将字符串作为变量名

    应用场景描述: 通过配置文件获取服务器上配置的服务名及运行端口号,编写python脚本检测服务上服务是否在运行? #!/usr/bin/env python # -*- coding:utf-8 -* ...

  9. css横向 弹性盒子布局的一些属性

    <head> <meta charset="utf-8"> <meta name="viewport" content=" ...

  10. 【分享】Windows日志查看工具分享

    在Linux下查看日志,使用tail.grep.find等命令还比较方便,后来需要在Windows中处理一些问题,发现缺少类似的功能,比如tailf实时输出,于是在网上收集了一些相关的小工具,希望能够 ...