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跳转的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

标签列表