1. 什么是URL Scheme?

是一种页面内跳转协议;通过定义自己的scheme协议,可以非常方便跳转app中的各个页面。

2.什么时候使用

  1. 服务器下发跳转路径,客户端根据服务器下发跳转路径跳转相应的页面
  2. APP根据URL跳转到另外一个APP指定页面。
  3. H5页面点击描点,根据描点具体跳转路径APP端跳转具体的页面
  4. 根据通知也可以跳转到指定页面

3.协议格式

例:myscheme://myhost:8888/macthDetail?macthId=222&name=hello

scheme 协议名称 myscheme 必填
host 代表Schema作用于哪个地址域 myhost 必填
port 代表该路径的端口号 88888 不必填
path 代表Schema指定的页面 /macthDetail 不必填
- 代表传递的参数 ?macthId=222&name=hello 不必填

4.在app中如何使用

 <activity android:name=".SecondActivity"><intent-filter>//三个action必填<action android:name="android.intent.action.VIEW"/><category android:name="android.intent.category.DEFAULT"/><category android:name="android.intent.category.BROWSABLE"/><data android:scheme="myscheme"android:host="myhost"android:port="8888"android:path="/macthDetail"/></intent-filter></activity>

5.如何调用

1.在html中调用非常简单

<a href="myscheme://myhost:8888/macthDetail?macthId=222&name=hello">打开源生应用指定的页面</a>

2.在源生应用中调用也很简单

Intent intent = new Intent(Intent.ACTION_VIEW,Uri.parse("myscheme://myhost:8888/macthDetail?macthId=222&name=hello"));
startActivity(intent);

6.在源生界面获取uri和各个参数

         Intent intent = getIntent();Uri data = intent.getData();  //String action = intent.getAction();String scheme = intent.getScheme();Set<String> categories = intent.getCategories();Log.e("TAG", "data==========="+data);Log.e("TAG", "action==========="+action);Log.e("TAG", "categories==========="+categories);Log.e("TAG", "DataString==========="+intent.getDataString());Log.e("TAG", "==============================");Log.e("TAG", "scheme==========="+scheme);Log.e("TAG", "id ==========="+data.getQueryParameterNames());Log.e("TAG", "host==========="+data.getHost());Log.e("TAG", "path==========="+data.getPath());Log.e("TAG", "port==========="+data.getPort());

输出结果

4-11 18:13:56.335 5198-5198/com.phone.myapplication E/TAG: data===========zymobi://3g2win:9999/macthDetail?goodsId=10011002&time=1111
04-11 18:13:56.335 5198-5198/com.phone.myapplication E/TAG: action===========android.intent.action.VIEW
04-11 18:13:56.335 5198-5198/com.phone.myapplication E/TAG: categories===========null
04-11 18:13:56.335 5198-5198/com.phone.myapplication E/TAG: DataString===========zymobi://3g2win:9999/macthDetail?goodsId=10011002&time=1111
04-11 18:13:56.335 5198-5198/com.phone.myapplication E/TAG: ==============================
04-11 18:13:56.335 5198-5198/com.phone.myapplication E/TAG: scheme===========zymobi
04-11 18:13:56.335 5198-5198/com.phone.myapplication E/TAG: id ===========[goodsId, time]
04-11 18:13:56.335 5198-5198/com.phone.myapplication E/TAG: host===========3g2win
04-11 18:13:56.335 5198-5198/com.phone.myapplication E/TAG: path===========/macthDetail
04-11 18:13:56.335 5198-5198/com.phone.myapplication E/TAG: port===========9999

Android 中Scheme协议的使用详解唤起Activity或App相关推荐

  1. Android 中 Scheme 协议的使用详解

    什么是 URL Scheme? 简单的说就是 android 中的一种页面内跳转协议,方便 app 页面的内的跳转 2.什么时候使用 服务器下发跳转路径,客户端根据 服务器下发跳转路径跳转相应的页面 ...

  2. Android 中Scheme协议的使用详解

    1. 什么是URL Scheme? 简单的说就是android中的一种页面内跳转协议,方便app页面的内的跳转 2.什么时候使用 服务器下发跳转路径,客户端根据 服务器下发跳转路径跳转相应的页面 H5 ...

  3. Android中measure过程、WRAP_CONTENT详解以及xml布局文件解析流程浅析(下)

       本文原创, 转载请注明出处:http://blog.csdn.net/qinjuning 上篇文章<<Android中measure过程.WRAP_CONTENT详解以及xml布局文 ...

  4. android 中的悬浮按钮,Android 中FloatingActionButton(悬浮按钮)实例详解

    android 中floatingactionbutton(悬浮按钮)实例详解 一.介绍 这个类是继承自imageview的,所以对于这个控件我们可以使用imageview的所有属性 二.使用准备, ...

  5. Android中联系人和通话记录详解(2)

    在文章Android中联系人和通话记录详解(1)中对通话记录进行了分析,本章将对联系人的数据库表.字段以及Insert,Query,Delelte,Update四大基本数据操作进行分析. 与联系人相关 ...

  6. Android中measure过程、WRAP_CONTENT详解以及 xml布局文件解析流程浅析

    转自:http://www.uml.org.cn/mobiledev/201211221.asp 今天,我着重讲解下如下三个内容: measure过程 WRAP_CONTENT.MATCH_PAREN ...

  7. Android中内存泄漏超级精炼详解

    一.前期基础知识储备 (1)什么是内存? JAVA是在JVM所虚拟出的内存环境中运行的,JVM的内存可分为三个区:堆(heap).栈(stack)和方法区(method). 栈(stack):是简单的 ...

  8. Android中measure过程、WRAP_CONTENT详解以及xml布局文件解析流程浅析(上)

    在之前一篇博文中<< Android中View绘制流程以及invalidate()等相关方法分析>> ,简单的阐述 了 Android View 绘制流程的三个步骤,即: 1. ...

  9. android中几种定位方式详解

    目录 前言: 1.GPS定位 2.NETWORK定位 3.AGPS定位 4.基站定位 5.WIFI定位 6.混合定位 目前,移动端大致通过三种方式来进行设备定位:GPS.基站.wifi.本文就详细的讲 ...

最新文章

  1. 基于模型(Model-based)进行特征选择(feature selection)并可视化特征重要性(feature importance)
  2. 湖南工程师用中文编写操作系统,还发明了甲、乙、丙语言???
  3. html引入外部css_CSS 三种基础选择器
  4. JS经典面试题03-引用类型连续赋值a.x = a = { n: 2 }
  5. Android DDMS如何使用?
  6. java分桃子_猴子分桃子.java
  7. python中的栈及其实现
  8. IOT(7)---物联网平台架构设计
  9. Python 5 运算符
  10. react-native 模仿原生 实现下拉刷新/上拉加载更多(RefreshListView)
  11. matlab figure函数怎么用,Matlab学习笔记 figure函数
  12. 陈纪修老师《数学分析》 第09章:数项级数 笔记
  13. 扫雷游戏(实现了网页版的扫雷游戏的所有逻辑)
  14. linux部署moodle
  15. 【运筹学】线性规划数学模型 ( 求解基矩阵示例 | 矩阵的可逆性 | 线性规划表示为 基矩阵 基向量 非基矩阵 非基向量 形式 )
  16. matlab标题斜体_matlab 斜体 正体
  17. 解决vue google无状态播放音频文件
  18. 典型数据的时、频域图
  19. 易签指纹签到系统测试文档
  20. html css好看的提示框,div对话框,js+div+css实现好看的提示框效果(转)

热门文章

  1. 计算机科学和密码的先驱是,将数学与计算机科学联系起来的先驱者获得数学诺贝尔奖 | quantamagazine...
  2. INTEL CPU 本子 列表 看你的是否支持虚拟化(是否采用了 Intel VT技术)
  3. 毕设题目:Matlab图像处理
  4. 【嵌入式基础】Keil下编译代码并生成HEX文件
  5. 关于html5外文翻译三千字,新媒体外文文献翻译最新译文3000多字
  6. EXCEL里怎样拆分单元格
  7. 【英文文献】如何阅读英文文献
  8. 如何阅读英文文献,有哪些高效的方法或者辅助工具?
  9. Redis——9. 哨兵机制
  10. 河北科技大学电子商务L122班级介绍