scheme在Android中是一种页面跳转的协议。通过定义自己的scheme可以非常方便的实现页面跳转,适合组件化开发。通过scheme协议,服务器可以定制化告诉App跳转那个页面,可以通过通知栏消息定制化跳转页面,可以通过H5页面跳转页面等。
URL Scheme协议格式:
<scheme>://<host>:<port>[<path>|<pathPrefix>|<pathPattern>]
- scheme代表该Scheme 协议名称
- host代表Scheme作用于哪个地址域
- path代表Scheme指定的页面
- port 代表该路径的端口号
例如:
tuya://camera:8888/XXXXameraActivity?devId=xxxxx
集成方式
-
在AndroidManifest.xml中对所需要打开的activity添加intent-fliter
<activity android:name="com.tuya.smart.camera.reactnative.activity.XXXXameraActivity" android:configChanges="keyboard|keyboardHidden|orientation|screenSize" > <intent-filter> <data android:scheme="tuya" android:host="camera" android:path="/XXXXameraActivity" android:port="8888"/> <category android:name="android.intent.category.DEFAULT"/> <action android:name="android.intent.action.VIEW"/> <category android:name="android.intent.category.BROWSABLE"/> </intent-filter> </activity>
调用方式
-
在网页上写
<a href="tuya://camera:8888/XXXXameraActivity?devId=xxxxx">打开XXXXameraActivity</a>
点击后,如果手机安装了该应用便会直接打开
-
原生调用
Intent intent = new Intent(Intent.ACTION_VIEW,Uri.parse("tuya://camera:8888/XXXXameraActivity?devId=xxxxx")); startActivity(intent);
总结
通过scheme跳转是一个很好的方式,一个Activity要写一个,如果入口多了,要写很多个,工程大了难以管理。