摘要:本文将带你了解Android应用开发之android Activity Scheme跳转协议运用讲解,希望本文对大家学Android有所帮助。
本文将带你了解Android应用开发之android Activity Scheme跳转协议运用讲解,希望本文对大家学Android有所帮助。
Scheme协议
Android中的Scheme是一种页面内跳转协议,通过自定义Scheme协议,可以跳转到app中的任何页面。
服务器可以定制化跳转app页面app可以通过Scheme跳转到另一个app页面可以通过h5页面跳转app原生页面
协议格式
?1Uri.parse("qh://test:8080/goodsgoodsId=8897&name=fuck")
qh代表Scheme协议名称test代表Scheme作用的地址域8080代表改路径的端口号/goods代表的是指定页面(路径)goodsId和name代表传递的两个参数
Scheme使用
定义一个Scheme
<!-- 给页面添加指定的过滤器--> <intent-filter> <!--该页面的路径配置--> <data android:host="test" android:path="/goods" android:port="8080" android:scheme="qh"> <!--下面这几行也必须得设置--> <category android:name="android.intent.category.DEFAULT"> <category android:name="android.intent.category.BROWSABLE"> </category></action></category></data></intent-filter></activity>
获取Scheme跳转的参数
Uri uri = getIntent().getData(); if (uri != null) { // 完整的url信息 String s = uri.toString(); sb.append(s + "\n"); // scheme部分 String scheme = uri.getScheme(); sb.append("scheme=" + scheme + "\n"); // host部分 String host = uri.getHost(); sb.append("host=" + host + "\n"); // 访问路劲 String path = uri.getPath(); sb.append("path=" + path + "\n"); //port部分 int port = uri.getPort(); sb.append("port=" + port + "\n"); // Query部分 String query = uri.getQuery(); sb.append("query=" + query + "\n"); //获取指定参数值 String goodsId = uri.getQueryParameter("goodsId"); sb.append("goodsId=" + goodsId + "\n"); //列举所以参数名 Set<string> queryParameterNames = uri.getQueryParameterNames(); tv_scheme.setText(sb.toString()); }</string>
调用方式
?1231. 原生调用Intent intent1 = new Intent(Intent.ACTION_VIEW, Uri.parse("qh://test:8080/goodsgoodsId=8897&name=fuck")); startActivity(intent1);
?122. html调用<a href="qh://test:8080/goods?goodsId=8897&name=fuck">打开商品详情</a>
判断某个Scheme是否有效
?123456Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("qh://test:8080/goodsgoodsId=8897&name=fuck"));List<resolveinfo> activities = getPackageManager().queryIntentActivities(intent, 0);boolean isValid = !activities.isEmpty();if (isValid) { startActivity(intent);}</resolveinfo>
本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标移动开发之Android频道!
您输入的评论内容中包含违禁敏感词
我知道了
请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号