目录介绍
- 1.URL Scheme使用场景介绍
-
2.URL Scheme基础介绍
- 2.1 什么是URL Scheme?
- 2.2 URL Scheme协议格式解释
- 2.3 Scheme链接格式样式
-
3.URL Scheme如何使用
- 3.1 设置Scheme
- 3.2 获取Scheme跳转的参数,并添加跳转方式
- 3.3 调用方式
- 3.4 如何判断一个Scheme是否有效
- 3.5 Scheme在短信息中注意要点
关于Scheme应用案例
- https://github.com/yangchong211/YCAudioPlayer
- 可以参考该demo中的AppTool工具app,用aidl通信,还支持scheme协议跳转,挺好玩的!
关于链接
1.URL Scheme使用场景介绍
-
URL Scheme使用场景,目前1,2,5使用场景很广,有没有一种熟悉的感觉?
- 1.通过小程序,利用Scheme协议打开原生app
- 2.H5页面点击锚点,根据锚点具体跳转路径APP端跳转具体的页面
- 3.APP端收到服务器端下发的PUSH通知栏消息,根据消息的点击跳转路径跳转相关页面
- 4.APP根据URL跳转到另外一个APP指定页面
- 5.通过短信息中的url打开原生app
2.URL Scheme基础介绍
2.1 什么是URL Scheme?
- android中的scheme是一种页面内跳转协议,是一种非常好的实现机制,通过定义自己的scheme协议,可以非常方便跳转app中的各个页面
2.2 URL Scheme协议格式
String urlStr="http://www.ycbjie.cn:80/yc?id=hello&name=cg"; //url = protocol + authority(host + port) + path + query //协议protocol= http //域名authority= www.ycbjie.cn:80 //页面path= /yc //参数query= id=hello&name=cg //authority = host + port //主机host= www.ycbjie.cn //端口port= 80
2.3 Scheme链接格式样式
- 样式:[scheme]://[host]/[path]?[query]
3.URL Scheme如何使用
3.1 设置Scheme
- 在AndroidManifest.xml中对标签增加设置Scheme
<activity
android:name=".ui.main.ui.activity.SchemeFirstActivity"
android:screenOrientation="portrait">
<!--Android 接收外部跳转过滤器-->
<!--要想在别的App上能成功调起App,必须添加intent过滤器-->
<intent-filter>
<!-- 协议部分配置 ,注意需要跟web配置相同-->
<!--协议部分,随便设置 yc://ycbjie:8888/from?type=yangchong -->
<data android:scheme="yc"
android:host="ycbjie"
android:path="/from"
android:port="8888"/>
<!--下面这几行也必须得设置-->
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<action android:name="android.intent.action.VIEW" />
</intent-filter>
</activity>
3.2 获取Scheme跳转的参数,并添加跳转方式
public class SchemeFirstActivity extends AppCompatActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Uri uri = getIntent().getData();
if (uri != null) {
//获取指定参数值
String type = uri.getQueryParameter("type");
Log.e( "UrlUtils","main: " + type);
if(type.equals("yangchong")){
ActivityUtils.startActivity(GuideActivity.class);
}else if(type.equals("main")){
ActivityUtils.startActivity(MainActivity.class);
}
}
finish();
}
}
3.3 调用方式
- 3.3.1 原生调用
Intent intent = new Intent(Intent.ACTION_VIEW,Uri.parse("yc://ycbjie:8888/from?type=yangchong"));
startActivity(intent);
- 3.3.2 网页调用
<a href="yc://ycbjie:8888/from?type=yangchong">打开叮咚app</a>
- 3.3.3 短信息中调用
3.4 如何判断一个Scheme是否有效
PackageManager packageManager = getPackageManager();
Intent intent = new Intent(Intent.ACTION_VIEW,
Uri.parse("yc://ycbjie:8888/from?type=yangchong"));
List<ResolveInfo> activities = packageManager.queryIntentActivities(intent, 0);
boolean isValid = !activities.isEmpty();
if (isValid) {
startActivity(intent);
}
3.5 Scheme在短信息中注意要点
- 设置android:scheme=”http”或者android:scheme=”https”后,点击短信息或者h5页面,发现没有跳到指定的页面,反而打开的是网页链接。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- ASP.NET Core模块化前后端分离快速开发框架介绍之3、数据访问模块介绍
- 简编漫画介绍WebAssembly
- CGroup 介绍
- CGroup 介绍
- vue初步介绍
- Microbit MicroPython 介绍
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
个性化网页设计与鉴赏
梁景红 / 西安电子科技大学出版社 / 2003-07-14 / 22.00
本书比较全面地介绍了网页设计应注意的相关问题, 在网页设计基础方面着重讲解了网页框架、页面元素、色彩设计,分析了一些人们容易忽视的细小环节,如页面装饰物、图片、文字、连接等。书中结合实例分析了优秀网页的设计创意思想,可以给读者提供一些启示。书中还介绍了作为网页设计者需要了解的信息管理和技术应用,以及网站VI设计和视觉美学等必要知识,读者可针对各种类别的站点具体实践这些知识,寻找进行网页设计的切入点......一起来看看 《个性化网页设计与鉴赏》 这本书的介绍吧!
正则表达式在线测试
正则表达式在线测试
HEX CMYK 转换工具
HEX CMYK 互转工具