React Native之配置URL Scheme(iOS Android)

 

React Native之配置URL Scheme(iOS Android)

一,需求分析

 1.1,需要在网站中打开/唤起app,或其他app中打开app,则需要设置URL Scheme。比如微信的是:weixin://

二,URL Scheme介绍

2.1,URL Scheme是什么?

URL Scheme是一种页面内跳转协议,是一种非常好的实现机制,通过定义自己的scheme协议,可以非常方便跳转app中的各个页面;通过scheme协议,服务器可以定制化告诉App跳转那个页面,可以通过通知栏消息定制化跳转页面,可以通过H5页面跳转页面等。

苹果手机中的APP都有一个沙盒,APP就是一个信息孤岛,相互是不可以进行通信的。但是iOS的APP可以注册自己的URL Scheme,URL Scheme是为方便app之间互相调用而设计的。

URL Scheme必须能唯一标识一个APP,如果你设置的URL Scheme与别的APP的URL Scheme冲突时,你的APP不一定会被启动起来。因为当你的APP在安装的时候,系统里面已经注册了你的URL Scheme。 

2.2,URL Scheme应用场景

客户端应用可以向操作系统注册一个 URL scheme,该 scheme 用于从浏览器或其他应用中启动本应用。通过指定的 URL 字段,可以让应用在被调起后直接打开某些特定页面,比如商品详情页、活动详情页等等。也可以执行某些指定动作,如完成支付等。也可以在应用内通过 html 页来直接调用显示 app 内的某个页面。综上URL Scheme使用场景大致分以下几种:

  1. 服务器下发跳转路径,客户端根据服务器下发跳转路径跳转相应的页面
  2. H5页面点击锚点,根据锚点具体跳转路径APP端跳转具体的页面
  3. APP端收到服务器端下发的PUSH通知栏消息,根据消息的点击跳转路径跳转相关页面
  4. APP根据URL跳转到另外一个APP指定页面

2.3,URL Scheme的协议格式

完整的URL Scheme协议格式:

复制代码
1 opengs://tasks:8088/tasksDetail?tasksId=102
复制代码

通过上面的路径 Scheme、Host、port、path、query全部包含,基本上平时使用路径就是这样子的。

  1. opengs代表该Scheme 协议名称
  2. tasks代表Scheme作用于哪个地址域
  3. tasksDetail代表Scheme指定的页面
  4. tasksId代表传递的参数
  5. 8088代表该路径的端口号

三,URL Scheme配置

3.1,Android配置

URL Scheme的使用要先在AndroidManifest.xml中配置能接受Scheme方式启动的activity:

复制代码
 1 <activity  2  3          ...  4  5             <!--要想在别的App上能成功调起App,必须添加intent过滤器--> 6             <intent-filter> 7                 <!--协议部分,随便设置--> 8                 <data  9                     android:host="tasks"10                     android:path="/tasksDetails"11                     android:port="8080"//可以不要 12                     android:scheme="opengs"/>13                 <!--下面这几行也必须得设置-->14                 <category android:name="android.intent.category.DEFAULT"/>15                 <action android:name="android.intent.action.VIEW"/>16                 <category android:name="android.intent.category.BROWSABLE"/>
                        
关键字:
50000+
5万行代码练就真实本领
17年
创办于2008年老牌培训机构
1000+
合作企业
98%
就业率

联系我们

电话咨询

0532-85025005

扫码添加微信