Android 中Scheme协议的使用详解唤起Activity或App
1. 什么是URL Scheme?
是一种页面内跳转协议;通过定义自己的scheme协议,可以非常方便跳转app中的各个页面。
2.什么时候使用
- 服务器下发跳转路径,客户端根据服务器下发跳转路径跳转相应的页面
- APP根据URL跳转到另外一个APP指定页面。
- H5页面点击描点,根据描点具体跳转路径APP端跳转具体的页面
- 根据通知也可以跳转到指定页面
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相关推荐
- Android 中 Scheme 协议的使用详解
什么是 URL Scheme? 简单的说就是 android 中的一种页面内跳转协议,方便 app 页面的内的跳转 2.什么时候使用 服务器下发跳转路径,客户端根据 服务器下发跳转路径跳转相应的页面 ...
- Android 中Scheme协议的使用详解
1. 什么是URL Scheme? 简单的说就是android中的一种页面内跳转协议,方便app页面的内的跳转 2.什么时候使用 服务器下发跳转路径,客户端根据 服务器下发跳转路径跳转相应的页面 H5 ...
- Android中measure过程、WRAP_CONTENT详解以及xml布局文件解析流程浅析(下)
本文原创, 转载请注明出处:http://blog.csdn.net/qinjuning 上篇文章<<Android中measure过程.WRAP_CONTENT详解以及xml布局文 ...
- android 中的悬浮按钮,Android 中FloatingActionButton(悬浮按钮)实例详解
android 中floatingactionbutton(悬浮按钮)实例详解 一.介绍 这个类是继承自imageview的,所以对于这个控件我们可以使用imageview的所有属性 二.使用准备, ...
- Android中联系人和通话记录详解(2)
在文章Android中联系人和通话记录详解(1)中对通话记录进行了分析,本章将对联系人的数据库表.字段以及Insert,Query,Delelte,Update四大基本数据操作进行分析. 与联系人相关 ...
- Android中measure过程、WRAP_CONTENT详解以及 xml布局文件解析流程浅析
转自:http://www.uml.org.cn/mobiledev/201211221.asp 今天,我着重讲解下如下三个内容: measure过程 WRAP_CONTENT.MATCH_PAREN ...
- Android中内存泄漏超级精炼详解
一.前期基础知识储备 (1)什么是内存? JAVA是在JVM所虚拟出的内存环境中运行的,JVM的内存可分为三个区:堆(heap).栈(stack)和方法区(method). 栈(stack):是简单的 ...
- Android中measure过程、WRAP_CONTENT详解以及xml布局文件解析流程浅析(上)
在之前一篇博文中<< Android中View绘制流程以及invalidate()等相关方法分析>> ,简单的阐述 了 Android View 绘制流程的三个步骤,即: 1. ...
- android中几种定位方式详解
目录 前言: 1.GPS定位 2.NETWORK定位 3.AGPS定位 4.基站定位 5.WIFI定位 6.混合定位 目前,移动端大致通过三种方式来进行设备定位:GPS.基站.wifi.本文就详细的讲 ...
最新文章
- 基于模型(Model-based)进行特征选择(feature selection)并可视化特征重要性(feature importance)
- 湖南工程师用中文编写操作系统,还发明了甲、乙、丙语言???
- html引入外部css_CSS 三种基础选择器
- JS经典面试题03-引用类型连续赋值a.x = a = { n: 2 }
- Android DDMS如何使用?
- java分桃子_猴子分桃子.java
- python中的栈及其实现
- IOT(7)---物联网平台架构设计
- Python 5 运算符
- react-native 模仿原生 实现下拉刷新/上拉加载更多(RefreshListView)
- matlab figure函数怎么用,Matlab学习笔记 figure函数
- 陈纪修老师《数学分析》 第09章:数项级数 笔记
- 扫雷游戏(实现了网页版的扫雷游戏的所有逻辑)
- linux部署moodle
- 【运筹学】线性规划数学模型 ( 求解基矩阵示例 | 矩阵的可逆性 | 线性规划表示为 基矩阵 基向量 非基矩阵 非基向量 形式 )
- matlab标题斜体_matlab 斜体 正体
- 解决vue google无状态播放音频文件
- 典型数据的时、频域图
- 易签指纹签到系统测试文档
- html css好看的提示框,div对话框,js+div+css实现好看的提示框效果(转)
热门文章
- 计算机科学和密码的先驱是,将数学与计算机科学联系起来的先驱者获得数学诺贝尔奖 | quantamagazine...
- INTEL CPU 本子 列表 看你的是否支持虚拟化(是否采用了 Intel VT技术)
- 毕设题目:Matlab图像处理
- 【嵌入式基础】Keil下编译代码并生成HEX文件
- 关于html5外文翻译三千字,新媒体外文文献翻译最新译文3000多字
- EXCEL里怎样拆分单元格
- 【英文文献】如何阅读英文文献
- 如何阅读英文文献,有哪些高效的方法或者辅助工具?
- Redis——9. 哨兵机制
- 河北科技大学电子商务L122班级介绍