什么是 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

android:name=".SchemeActivity"

android:label="@string/app_name">

模拟从网络中获取scheme协议的url

public class MainActivity extends AppCompatActivity {

private TextView btnSchemeTv;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

btnSchemeTv = (TextView) findViewById(R.id.btn_scheme_tv);

btnSchemeTv.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View view) {

/**

* (1)在manifest配置文件中配置了scheme参数

* (2)网络端获取url

* (3)跳转

*/

String url = "scheme://mtime/goodsDetail?goodsId=10011002";

Intent intent = new Intent(Intent.ACTION_VIEW,

Uri.parse(url));

startActivity(intent);

}

});

}

}

获取scheme协议参数

public class SchemeActivity extends Activity {

private static final String TAG = "SchemeActivity";

private TextView schemeTv;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_scheme);

schemeTv = (TextView) findViewById(R.id.scheme_tv);

Uri data = getIntent().getData();

Log.i(TAG, "host = " + data.getHost() + " path = " + data.getPath() + " query = " + data.getQuery());

String param = data.getQueryParameter("goodsId");

schemeTv.setText("获取的参数为:" + param);

}

}

android scheme 参数解析,Android 利用scheme协议进行跳转相关推荐

  1. android开源torrent解析,Android之Bt框架

    源码 7.1 框架图 启动 1.系统服务 SystemService if (isEmulator) { Slog.i(TAG, "No Bluetooth Service (emulato ...

  2. android 摄像头参数,获取Android设备上的详细的摄像头信息

    原标题:获取Android设备上的详细的摄像头信息 如何获取Android设备上的详细的摄像头信息呢? 目前Samsung的Galaxy Tab和Nexus S均有前置摄像头,获取Android摄像头 ...

  3. android json格式解析,android之解析json数据格式详解

    1.JSON解析 (1).解析Object之一: 解析方法: 1 JSONObject demoJson =newJSONObject(jsonString); 2 String url = demo ...

  4. android 关于页面,解析android中的帮助、about、关于作者、HELP等提示页面

    在android中,经常要用到帮助.about.关于作者等的提示页面. 类似这样的页面: 这样的页面,我们可以通过AlertDialog对话框来设计. 设计一个AboutDialog类继承于Alert ...

  5. Carson带你学Android:全面解析Android消息推送解决方案

    前言 鉴于现在运营需求的增强,消息推送在Android开发中应用的场景是十分常见 如电商的活动宣传.资讯类产品进行新闻推送等等 今天,我将全面介绍Android中实现消息推送的7种主流解决方案 Car ...

  6. android gravity参数,Gravity - [ Android中文手册 ] - 在线原生手册 - php中文网

    Gravity 版本:Android 4.0 r1 结构 继承关系 public class Gravity extends Object java.lang.Object android.view. ...

  7. android aspectj 参数,在Android项目中使用AspectJ

    什么是AOP AOP是 Aspect Oriented Programming 的缩写,即面向切面编程,和日常遇到的面向对象OOP编程不同的是,OOP是将功能模块化对象化,AOP是针对同一类的问题统一 ...

  8. android pppd参数介绍,android 3G pppd 调试记录

    android 3G pppd 调试记录. 1.  JAVA 部分 android/development/data/etc/apns-conf_sdk.xml   --->  system/e ...

  9. android 请求参数打印,android retrofit 请求参数格式RequestBody的方法

    以前都是使用 Observable login(@HeaderMap Map headers, @QueryMap Map map); @QueryMap方式,将参数放入map中传输的 现在改用Req ...

  10. android 请求参数打印,Android开发-----关于解决Retrofit打印HttpLog和设置连接超时的问题...

    问题, 1 由于Retrofit默认连接超时时间只有10s 某些情况下可能连接时间会超过10s,这个时候就会报出SocketTimeoutException 这个时候我们就需要自己设置超时间, 2 很 ...

最新文章

  1. 设置文字QT按钮包含图片与文字,以及鼠标停留备注显示,和sheetstyle风格设置。...
  2. 非此即彼的逻辑错误_辩证思维与逻辑思维相对立
  3. 配置SQL Server 2012 AlwaysOn ——step1 建立AD域及DNS配置
  4. ASP.NET Core 使用MySQL(Database First)
  5. nyoj 4 ASCII码排序(set,multiset)
  6. 第二十一:基于Python2+Selenium3+Pytest4+Pytest-Html的UI自动化框架
  7. Vim中的remap,noremap,nnoremap和vnoremap映射命令有什么区别?
  8. 涨薪慢,该不该跳槽?
  9. 文言文编程可以编译成PHP吗,PSTK项目:文言文也能编程?大四学生发明文言文编程语言...
  10. 【C++从入门到踹门】第十四篇:二叉搜索树
  11. PHP 大数据处理思路
  12. 遭遇XP-664129A8.EXE
  13. 服务化治理脚本:show-busiest-java-threads。
  14. Window7开机速度有点慢的解决办法
  15. Apache Tomcat安全漏洞列表及整改建议合集
  16. 容器化ICT融合初体验
  17. html utf8转换工具,GB/BIG5/UTF-8 文件编码批量转换工具
  18. antd Popconfirm组件样式错乱问题
  19. python猜数字1001untitled_pytest封神之路第零步 快速入门
  20. 总结同学们第十周作业出现的问题

热门文章

  1. 二极管压降随电流的变化
  2. 桥接模式+C#发送邮件+配置文件
  3. Uber天使投资人杰森卡拉卡尼斯投资…
  4. 轻应用框架, Clouda先行
  5. AlphaGo围棋论文中文翻译
  6. 我在印尼工作的日子-基本环境
  7. SystemVerilog之interface
  8. 什么是二级域名?二级域名如何注册申请?
  9. 用shell脚本批量删除文件名后缀
  10. SecureCRT中文乱码-显示和复制和粘贴乱码解决办法