1、scheme的作用
Android的scheme 是一种页面内跳转协议。通过scheme 可以进行页面跳转,可以是app之间的跳转,
也可以是网页和app之间的跳转。
2、scheme的定义
协议://协议地址/端口/路径/参数
scheme://nade/startappdata= "123456"
协议:scheme(可以自定义)
协议地址:(可以自定义)
端口:(可以自定义)
路径:
参数:
3、scheme的使用
1、app内使用:
/
scheme跳转
@param s
/
private void schemeJump(String s) {
if (!checkScheme(s)) {
showToast("页面不存在");
}
Intent schemeIntent = new Intent(IntentACTION_VIEW);
schemeIntentsetData(Uriparse(s));
startActivity(schemeIntent);
}
2、网页内使用
// h5调用
<a href="scheme://nade/startappdata=123456">app目标页面</a>
3、app解析处理
Intent intent = getIntent();
if (intentgetData() != null) {
Uri uri = intentgetData();
//获取uri链接
LogUtilsd("nade",uritoString());
//获取协议
LogUtilsd("nade",urigetScheme());
//获取协议链接
LogUtilsd("nade",urigetHost());
//获取端口
LogUtilsd("nade",StringvalueOf(urigetPort()));
//获取路径
LogUtilsd("nade",urigetPath());
//获取参数
LogUtilsd("nade",urigetQueryParameter("data"));
//获取参数集合
for (String data : urigetQueryParameters("data")) {
LogUtilsd("nade",data);
}
}
/
检测scheme链接是否可用
@param s
@return
/
public boolean checkScheme(String s){
PackageManager manager = getPackageManager();
Intent intent = new Intent(IntentACTION_VIEW);
intentsetData(Uriparse(s));
List<ResolveInfo> uris = managerqueryIntentActivities(intent, PackageManagerGET_RESOLVED_FILTER);
return uris != null && urissize() > 0;
}
服务器端:
String encodeStr = URLEncoderencode("中国", "utf-8");
Systemoutprintln("处理后:" + encodeStr);
//处理后:%E4%B8%AD%E5%9B%BD
客户端:
String decodeStr = URLDecoderdecode(encodeStr, "utf-8");
Systemoutprintln("解码:" + decodeStr);
//解码:中国
可使用android自带的>
一般传输参数使用json类型或者map类型都是使用post方法。
使用json数据格式发送信息向服务器端:
>
以上就是关于Android URL Scheme唤醒之门全部的内容,包括:Android URL Scheme唤醒之门、android 接收url的json数据 中文转码、android 怎样获取后台的数据等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)