Android采用Scheme协议进行跳转

人走茶凉 提交于 2020-03-10 21:56:13

所谓的Scheme协议具有以下特点:

1.android中的scheme是一种页面内跳转协议。

2.通过定义自己的scheme协议,可以非常方便跳转app中的各个页面;

3.通过scheme协议,服务器可以定制化告诉App跳转到APP内部页面。

之前项目都是我们客户端和服务器端用自定义json串的形式来告诉客户端如何跳转,这种方式要手动解析字段,有点麻烦。然而scheme协议自带字段解析,非常之方便,后面我们就放弃了json解析的方式。

 

Scheme协议在Android中使用场景

1.H5跳转到native页面

2.客户端获取push消息中后,点击消息跳转到APP内部页面

3.APP根据URL跳转到另外一个APP指定页面

 

Scheme协议的使用:

一个完整的Scheme协议包含(String url = "scheme://mtime:8080/goodsDetail?goodsId=10011002")

scheme:协议的名称---随便定义

      host:  协议的域名---随便定义

      port:自定义协议的端口号---随便定义

      path:协议要跳转的路劲(指定的页面)----名字随便起

      

1.在Mainefest配置文件中配置需要用scheme协议跳转的Activity

2.得到Scheme协议URL后,进行跳转

需要携带参数的话,直接再Scheme协议URL后面拼接即可,可以拼接多个参数,参数间用&隔开即可

String schemeUrl = "wangyy://com.wangyy.sample:8888/goodsDetail?goodsId=10011002&userId=123456";

3.如果有携带参数的话,在目标Activity的onCreat()中需要获取传递过来的参数

Uri data = getIntent().getData();
String param = data.getQueryParameter("goodsId");//获取指定key下的参数
String param2 = data.getQueryParameter("userId");//获取指定key下的参数

双方定义好Scheme协议4个参数的取值后,只要能够拿到这个Scheme协议的URL,就能打开该协议中指定的Activity页面

 

 

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!