Android如何通过scheme跳转界面
作者:huagbo 发布时间:2021-08-11 05:19:41
标签:Android,scheme,跳转界面
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>


猜你喜欢
- InterProcessMutex内部实现了zookeeper分布式锁的机制,所以接下来我们尝试使用这个工具来为我们的业务加上分布式锁处理的
- 本文实例为大家分享了Android实现ViewPager无限循环的具体代码,供大家参考,具体内容如下方式一:实现原理:假设有3张图片,分别是
- 这篇文章主要介绍了JavaWeb如何实现禁用浏览器缓存,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋
- 一.求两直线交点class Point { double x; do
- 前言MyBatis常用标签及标签使用技巧MyBatis的常用标签有很多,比如<sql id="">:预定义可
- 一、项目简述功能包括: 该系统不错分为学生,教师,管理员,教导主任四种角 色,包括学生管理,教师管理,学生选题,教师选题,主 任审核,管理员
- 不需要AIDL也不需要复杂的ContentProvider,也不需要SharedPreferences或者共享存储文件!只需要简单易懂的Me
- Activity类处于android.app包中,继承体系如下:1.java.lang.Object2.android.content.Co
- 1.引言合理利用线程池能够带来三个好处。第一:降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。第二:提高响应速度。当任务
- 目录 任务和线程的区别: 一、认识Task和Task的基本使用1、认识Task2、创建Task 二、Task的
- 在servlet中,转发和重定向是由request和response完成的。两者之间的区别请看我之前的文章。那么在springMVC中是如何
- 目录一、导入依赖二、前端实现三、后台逻辑三、页面效果四、可能会遇到的问题一、导入依赖这里还是用了Apache的POI插件,现在一般的spri
- maven scope provided和runtime例子maven常用的scope有compile,provided,runtime,t
- 1、AOP基本总结连接点(JoinPoint):连接点是程序运行的某个阶段点,如方法调用、异常抛出等切入点(Pointcut):切入点是Jo
- equals 方法是 java.lang.Object 类的方法。有两种用法说明:(1)对于字符串变量来说,使用“==”和“equals()
- 斗地主小游戏之洗牌发牌任务描述编写一个斗地主发牌洗牌的程序,要求按照斗地主的规则完成洗牌发牌的过程,牌面由花色色和数字(包括J,Q,K,A字
- 前言对象关系映射(ORM)已经被使用了很长时间,以解决在编程过程中对象模型与数据模型在关系数据库中不匹配的问题。Dapper是由Stack
- 本文实例讲述了Java中的异常和处理机制。分享给大家供大家参考,具体如下:简介程序运行时,发生的不被期望的事件,它阻止了程序按照程序员的预期
- 本文不再对值类型进行讨论,主要讨论一下引用类型。如要看内存值类型的朋友可以看一下前一篇C#之CLR内存原理初探。C#引用类型具体分析如下:先
- 思路:使用随机向量,把随机向量放入密文中,每次解密时从密文中截取前16位,其实就是我们之前加密的随机向量。 代码:public s