androidscheme(androidscheme跳转)
本篇文章给大家谈谈androidscheme,以及androidscheme跳转对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
Android Scheme URL 使用方法
URL Scheme是一种页面内跳转协议,通过定义自己的URL Scheme协议,可以
从一个APP中打开另外一个APP指定的页面,也可以从H5页面中跳转到APP指定的页面(实际上就是从一个浏览器中的一个页面跳转到APP指定页面)。
一个完整的完整袭握的URL Scheme协议格式由scheme、host、拍樱庆port、path和query组成,其结构如下颂毕所示:
scheme://host:port/path?query
schemeService://Host:8080/path?id=true
a href="schemeService://Host:8080/path?id=true"打开App传入指定参数/a
先检查一下是否有效
跳转
Android 利用scheme协议进行跳转
什么是 URL Scheme?
转自:
稍稍记录一下
android中的scheme是一种页面内跳转协议。
通过定义自己的scheme协议,可以非常方便跳转app中的各个页面;
通过scheme协议,服务器可以定制化告诉App跳转到APP内部页面。
之前项目都是我们客户端和服务器端用自定义json串的形式来告诉客户端如何跳转,这种方式要手动解析字段,有点麻烦。然而scheme协议自带字段解析,非常之方便卖老,后面我们就放弃了json解析的方式。
Scheme协议在Android中使用场景
H5跳转到native页面
客户端获取push消息中后,点击掘配散消息跳转到APP内部页面
APP根据URL跳转到另外一个APP指定页面
利用scheme协议跳转的一个完整实例
在Mainefest配置文件中配置判氏需要用scheme协议跳转的Activity
模拟从网络中获取scheme协议的url
获取scheme协议参数
[img]Android模块化页面跳转Scheme
Android模块化页面跳转族桥Scheme
Github
通过注解实现Uri页面跳转
支持参数自动解析
使用场景:
1、应用内服务端下发uri进行页面跳转
2、通知栏点击,携带uri进行页面跳转
3、其他应用通过uri调起进行页面跳转
注:activity的注解格式:group/path
group为各个模块的唯一字符串,不同模块不可重复
接入:
使用姿势:
根build.gradle
module依赖:
使用姿势:
场景1:应用内服务端下发uri进行页面跳转
1、在斗坦需要支持uri跳转的Activity增加注解@SchemePath("{随意填,唯一字符串}")
2、跳转事件
注:参数支持
uri支持参数,如" scheme://ModuleA/Activity?data=1time=20200714hasData=true "
Activity的参数增加@SchemeExtra注解,如
场景2:通知栏点击,携带uri进行页面跳转
1、应用首页Activity增加注解@SchemePath("{随意填}")
2、application调用初始化
3、启动页,通知栏点击入口
场景三:其他应用通过uri调起进行兆销猛页面跳转
1、注册中转activity
Android URL Scheme唤醒之门
1、scheme的作用
Android的scheme 是一种页面内跳转协议。通过scheme 可以进行页面跳转,可以是app之间的跳转,
也可以是网页和app之间的跳转伍裤禅。
2、scheme的定义
协议://协议地址/端口/路径/参数
scheme://nade/startapp?data= "123456"
协议:scheme(可以自定义)
协议地址:(可以自定义)
端口:(可以自定义)
路径:
参数:
3、scheme的使用
1、app内使纯桥用:
/**
* scheme跳转
* @param s
*/
private void schemeJump(String s) {
if (!checkScheme(s)) {
showToast("页面不存在");
}
Intent schemeIntent = new Intent(Intent.ACTION_VIEW);
schemeIntent.setData(Uri.parse(s));
startActivity(schemeIntent);
}
2、网页内使用
// h5调用
a href="scheme://nade/startapp?data=123456"app目标页面/a
3、app解析处理
Intent intent = getIntent();
if (intent.getData() != null) {
Uri uri = intent.getData();
//获取uri链接
LogUtils.d("nade",uri.toString());
//获取协议
LogUtils.d("nade",uri.getScheme());
//获取协议链接
LogUtils.d("nade",uri.getHost());
//获取端口
LogUtils.d("nade",String.valueOf(uri.getPort()));
//获腔尘取路径
LogUtils.d("nade",uri.getPath());
//获取参数
LogUtils.d("nade",uri.getQueryParameter("data"));
//获取参数集合
for (String data : uri.getQueryParameters("data")) {
LogUtils.d("nade",data);
}
}
/**
* 检测scheme链接是否可用
* @param s
* @return
*/
public boolean checkScheme(String s){
PackageManager manager = getPackageManager();
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse(s));
ListResolveInfo uris = manager.queryIntentActivities(intent, PackageManager.GET_RESOLVED_FILTER);
return uris != null uris.size() 0;
}
关于androidscheme和androidscheme跳转的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。