h5通过连接打开本地app_以及常见应用的URL Scheme

摘要:在做h5活动页面的时候,有这样的一个需求:点击页面的一个按钮就打开本地的一个app应用,如果该应用未下载,则跳转到app的下载页。这个操作是通过连接跳转的形式来实现的,这篇文章就简单讲解下如何操作的?

在做h5活动页面的时候,有这样的一个需求:点击页面的一个按钮就打开本地的一个app应用,如果该应用未下载,则跳转到app的下载页。这个操作是通过连接跳转的形式来实现的,这篇文章就简单讲解下如何操作的?


h5跳转链接:

<a href="[scheme]://[host]/[path]?[query]"> 唤起应用 </a>

说明:scheme (唤起协议)和host(唤起指定host)是必须存在的,并且要保证scheme和host和原生应用内是一致的。后面的path(协议路径)和query(参数)可以没有。当然能打开本地app的是需要应用进行对应处理的。


android的处理:

在app内的操作是比较简单的,在android中的intent-filter提供了对应的操作:

<activity android:name=".H5CallActivity">  
        <intent-filter>  
                <action android:name="android.intent.action.VIEW" />  
                <category android:name="android.intent.category.BROWSABLE" />  
                <category android:name="android.intent.category.DEFAULT" />  
                <data android:scheme="schemedemo"  
                      android:host="pszh.com"  
                      android:pathPrefix="/test/"  
                />  
        </intent-filter>  
</activity>

剩下的就是activity的处理:

Uri uri = getIntent().getData();  
StringBuilder sb = new StringBuilder();  
// 唤起链接  
sb.append("string : ").append(getIntent().getDataString()).append("\
");  
sb.append("scheme : ").append(uri.getScheme()).append("\
");  
sb.append("host : ").append(uri.getHost()).append("\
");  
sb.append("port : ").append(uri.getPort()).append("\
");  
sb.append("path : ").append(uri.getPath()).append("\
");  
// 接收唤起的参数  
sb.append("name : ").append(uri.getQueryParameter("name")).append("\
");  
sb.append("page : ").append(uri.getQueryParameter("page"));  
tv_url.setText(sb.toString());


 ios的处理:

在项目工程Targets->Info->URL Types->URL Schemes中,设置你app的标识

- (BOOL)application:(UIApplication *)application
      openURL:(NSURL *)url
sourceApplication:(NSString *)sourceApplication
      annotation:(id)annotation


常见应用的URL Scheme: 

1,系统默认应用

名称URL SchemeBundle identifier
Safarihttp://
mapshttp://maps.google.com
Phonetel://
SMSsms://
Mailmailto://
iBooksibooks://
App Storeitms-apps://itunes.apple.com
Musicmusic://
Videosvideos://

2,常用第三方软件

名称URL SchemeBundle identifier
QQmqq://
微信weixin://
腾讯微博TencentWeibo://
淘宝taobao://
支付宝alipay://
微博sinaweibo://
weico微博weico://
QQ浏览器mqqbrowser://com.tencent.mttlite
uc浏览器dolphin://com.dolphin.browser.iphone.chinese
欧朋浏览器ohttp://com.oupeng.mini
搜狗浏览器SogouMSE://com.sogou.SogouExplorerMobile
百度地图baidumap://com.baidu.map
Chromegooglechrome://
优酷youku://
京东openapp.jdmoble://
人人renren://
美团imeituan://
1号店wccbyihaodian://
我查查wcc://
有道词典yddictproapp://
知乎zhihu://
点评dianping://
微盘sinavdisk://
豆瓣fmdoubanradio://
网易公开课ntesopen://
名片全能王camcard://
QQ音乐qqmusic://
腾讯视频tenvideo://
豆瓣电影doubanmovie://
网易云音乐orpheus://
网易新闻newsapp://
网易应用apper://
网易彩票ntescaipiao://
有道云笔记youdaonote://
多看duokan-reader://
全国空气质量指数dirtybeijing://
百度音乐baidumusic://
下厨房xcfapp://

本文内容仅供个人学习、研究或参考使用,不构成任何形式的决策建议、专业指导或法律依据。未经授权,禁止任何单位或个人以商业售卖、虚假宣传、侵权传播等非学习研究目的使用本文内容。如需分享或转载,请保留原文来源信息,不得篡改、删减内容或侵犯相关权益。感谢您的理解与支持!

链接: https://shenqiku.cn/article/FLY_389