题记:从一个app跳转到另一个app,或者是从一个app跳转到网页浏览器,再或者从一个app跳转到设置里面的某个页面,都要用到这个。
首先创建两个app : test1 test2 , 最终效果:从test1 跳转到 test2
由最终效果可知,需要从1跳到2,那么在1当中就可拿到2当中的一些信息,比如boundle ID ,一个唯一的标识符。但是在这里并不是拿到这个唯一的标识符,这里拿到的是一个叫做URL Schemes, 它存放在第一个项目的info.plist文件中,需要我们手动去添加。
添加方法:点击“Information Property List”右边的加号添加一项,选中URL types为名字,type为Array,为其添加一项Dictionary,里面两个元素,一个是URL identifier ,也就是iD号,可以直接用本项目的Bundle ID ; 另外一个就是URL Schemes ,其下添加一项,value自定义,这个就是我们要获取的这个东西,可以很特别,也可以很普通,甚至不唯一,不唯一的时候跳转时苹果会自动跳转到最近打开的那一个app 。
如test2中的URL Schemes设置为aaaa 后,test1中设置如下图:
白名单,是从iOS9后必须要添加的,不然跳转不过去的。
设置跳转如下图:(首先需要在设置中运行过两个项目,保证都存在本机中)
当然也可以不判断本机是否存在test2 APP,直接跳转:
//下图中写的“加不加冒号都可以”是错的,应该是加不加//两斜杠都可,冒号是一定要的。
当然也可以在跳转过程中从一个app 传递参数到 另一个 app,
参考:http://www.jianshu.com/p/6dc32ea29729
iOS9后要添加白名单才能跳转,那如果是微信小应用跳转到一个app呢?怎么做?不可能在微信上添加你的app白名单吧!
可以参考网易新闻的客户端,他们采用的方法是点击后打开一个网页,然后这个网页会在微信的浏览器里,内容是一张图片,提示用户通过利用微信浏览器右上角里的“在浏览器(safari)中打开”
用户这样操作后,这个页面的js代码会判断是否已经在系统浏览器中,如果是,则运行脚本window.location='newsApp://'
如果否,则继续显示图片内容
这样就可以由微信跳转到app了,因为浏览器跳转不需要添加白名单。
更多URL Schemes知识 : http://www.jianshu.com/p/d64b9be5ad64
还有一篇很专业的介绍连接:http://sspai.com/31500