Android如何通过scheme跳转界面
程序员文章站
2022-06-29 12:08:48
android通过scheme跳转界面,应该如何实现?
需求
通过后台返回链接地址
eg: app://com.bobo.package/path?param...
android通过scheme跳转界面,应该如何实现?
需求
通过后台返回链接地址
eg: app://com.bobo.package/path?param1=abc¶m2=cde
跳转到指定的activity 并带入参数
实现
1.在manifest中配置activity
<activity android:name=".activityname"> <intent-filter> <action android:name="android.intent.action.view"/> <category android:name="android.intent.category.default"/> <category android:name="android.intent.category.browsable"/> <data android:scheme="app" android:host="com.bobo.package" android:path="/path"/> </intent-filter> </activity>
2.实现跳转
private void startactivity(context context) { try { uri uri = uri.parse("app://com.bobo.package/path?param1=abc¶m2=cde"); intent intent = new intent(); intent.setaction(intent.action_view); intent.setdata(uri); packagemanager packagemanager=getpackagemanager(); componentname componentname=intent.resolveactivity(packagemanager); if (componentname!=null){ context.startactivity(intent); } } catch (exception e) { e.printstacktrace(); } }
3.activity中处理数据获取参数
private void dealscheme() { intent intent = getintent(); string action = intent.getaction(); uri uri=null; if (intent.action_view.equals(action)) { uri uri= intent.getdata(); } if(uri==null) return; string param1=url.getqueryparameter("param1"); string param2=url.getqueryparameter("param2"); // dosomething(param1,param2); }
填坑
1.如下两个activity 当通过scheme 跳转界面时 ,系统会提示选择打开方式 因为没有精确匹配要跳哪个界面
<activity android:name=".activityaaaaaa"> <intent-filter> <action android:name="android.intent.action.view"/> <category android:name="android.intent.category.default"/> <category android:name="android.intent.category.browsable"/> <data android:scheme="app"/*没有配置host 和path*/ /> </intent-filter> </activity> <activity android:name=".activitybbbbbb"> <intent-filter> <action android:name="android.intent.action.view"/> <category android:name="android.intent.category.default"/> <category android:name="android.intent.category.browsable"/> <data android:scheme="app" android:host="com.bobo.package" /> </intent-filter> </activity>
2.如果不同的链接都要跳到一个activity
eg: app://com.bobo.package/path?param1=abc¶m2=cde
application://host/route?param1=abc¶m2=cde
activity配置
<activity android:name=".activityname"> <intent-filter> <action android:name="android.intent.action.view"/> <category android:name="android.intent.category.default"/> <category android:name="android.intent.category.browsable"/> <data android:scheme="app" android:host="com.bobo.package" android:path="/path"/> <data android:scheme="application" android:host="host" android:path="/route"/> </intent-filter> </activity>
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
推荐阅读
-
Android scheme 跳转的设计与实现详解
-
Win10如何禁用锁屏界面直接跳转到密码提示
-
Android中应用界面主题Theme使用方法和页面定时跳转应用
-
Android 中按home键和跳转到主界面的实例代码
-
如何通过nginx负载均衡跳转https
-
Android 跳转权限设置界面的终极方案
-
Android设备管理器,DeviceAdmin应用设置(代码方式,无需跳转系统界面用户点击激活)
-
Android开发中该如何通过划动屏幕实现图片切换功能
-
android开发中如何实现apk内部下载完成后直接跳转系统安装界面
-
Gradle 发布共享库——如何通过Gradle发布Android依赖库(aar)到 jitpack 公共仓库