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
# 跳转界面
# Android超详细讲解弹出多选框的实现
# Android实现弹出列表、单选、多选框
# Android超详细介绍自定义多选框与点击按钮跳转界面的实现
# 跳转
# 都要
# 跳到
# 大家多多
# 如何实现
# 跳转到
相关文章:
大同网页,大同瑞慈医院官网?
油猴 教程,油猴搜脚本为什么会网页无法显示?
,如何利用word制作宣传手册?
高端企业智能建站程序:SEO优化与响应式模板定制开发
如何快速搭建高效可靠的建站解决方案?
成都响应式网站开发,dw怎么把手机适应页面变成网页?
上海制作企业网站有哪些,上海有哪些网站可以让企业免费发布招聘信息?
建站之星客服服务时间及联系方式如何?
高防服务器租用指南:配置选择与快速部署攻略
建站之星如何取消后台验证码生成?
如何自己制作一个网站链接,如何制作一个企业网站,建设网站的基本步骤有哪些?
如何快速生成专业多端适配建站电话?
非常酷的网站设计制作软件,酷培ai教育官方网站?
网站广告牌制作方法,街上的广告牌,横幅,用PS还是其他软件做的?
网站制作报价单模板图片,小松挖机官方网站报价?
威客平台建站流程解析:高效搭建教程与设计优化方案
如何高效搭建专业期货交易平台网站?
简易网站制作视频教程,使用记事本编写一个简单的网页html文件?
网站专业制作公司,网站编辑是做什么的?好做吗?工作前景如何?
宝塔建站教程:一键部署配置流程与SEO优化实战指南
如何在搬瓦工VPS快速搭建网站?
如何在IIS服务器上快速部署高效网站?
常州企业网站制作公司,全国继续教育网怎么登录?
重庆网站制作公司哪家好,重庆中考招生办官方网站?
网站制作的方法有哪些,如何将自己制作的网站发布到网上?
宝盒自助建站智能生成技巧:SEO优化与关键词设置指南
C++如何使用std::optional?(处理可选值)
C++用Dijkstra(迪杰斯特拉)算法求最短路径
胶州企业网站制作公司,青岛石头网络科技有限公司怎么样?
建站之星logo尺寸如何设置最合适?
如何在万网ECS上快速搭建专属网站?
建站之星如何保障用户数据免受黑客入侵?
哈尔滨网站建设策划,哈尔滨电工证查询网站?
如何在Golang中引入测试模块_Golang测试包导入与使用实践
建站之星后台密码遗忘或太弱?如何重置与强化?
如何在IIS7中新建站点?详细步骤解析
如何快速搭建自助建站会员专属系统?
建站之星导航如何优化提升用户体验?
简单实现Android文件上传
浅谈Javascript中的Label语句
如何实现建站之星域名转发设置?
青岛网站建设如何选择本地服务器?
如何零成本快速生成个人自助网站?
股票网站制作软件,网上股票怎么开户?
山东网站制作公司有哪些,山东大源集团官网?
零服务器AI建站解决方案:快速部署与云端平台低成本实践
建站主机选购指南:核心配置与性价比推荐解析
Avalonia如何实现跨窗口通信 Avalonia窗口间数据传递
建站VPS选购需注意哪些关键参数?
免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?
*请认真填写需求信息,我们会在24小时内与您取得联系。