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

时间: 2018-01-25阅读: 4025标签: h5

在做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("\n");  
sb.append("scheme : ").append(uri.getScheme()).append("\n");  
sb.append("host : ").append(uri.getHost()).append("\n");  
sb.append("port : ").append(uri.getPort()).append("\n");  
sb.append("path : ").append(uri.getPath()).append("\n");  
// 接收唤起的参数  
sb.append("name : ").append(uri.getQueryParameter("name")).append("\n");  
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://

h5通过css实现禁止ios端长按复制选中文字的方法

在ios端默认的长按选择,可以对文字进行复制粘贴。但是在实际开发中,针对一些按钮一般要避免长按时弹出选中文字,或者一些罩层要避免弹出。 这篇文章通过css3实现禁止ios端长按复制选中文字的方法

h5禁止ios上拉回弹_通过js解决safari、微信下拉回弹和上拉空白的效果

在ios中为了让滑动更流畅,不那么生涩,我们需要使用-webkit-overflow-scrolling属性,但是在safari、微信等浏览器中会出现下拉回弹和上拉空白的效果,解决办法为:当滚动区滚到顶部时,手再触屏时,把把div的滚动位置向下调一点点

使用Chrome开发者工具远程调试原生Android上的H5页面

Android4.4(KitKat)开始,使用Chrome开发者工具可以帮助我们在原生的Android应用中远程调试WebView网页内容。

如何在h5中调用支付宝支付功能

如何在自己的H5页面如何集成支付宝支付呢?目前采用前后端分离的开发模式,数据都是通过服务器那边获取的,现在需要集成支付宝支付,下面就简单介绍下。

h5实现名片扫描识功能

点击名片识别按钮,将名片上的个人信息扫描并解析出来显示。需要调出手机摄像头和相册,让用户进行选择;获取照片或者图片的base64数据;调取第三方的orc接口进行图片解析,得到名片上的个人信息,并显示。

H5页面基于接口实现数据交互

对于现在APP开发来说,目前流行的两个方式是原生和H5。就如同之前业界程序猿争论的BS和CS之争一样,业界对于H5和原生也有不小的争论。对于前者的争论在于PC端,后者在于移动端上体现。

h5手机摇一摇功能实现:基于html5重力感应DeviceMotionEvent事件监听手机摇晃

DeviceMotionEven是html5提供的一个用来获取设备物理方向及运动的信息(比如陀螺仪、罗盘及加速计)的Dom事件,利用devicemotion实现手机h5页面摇一摇功能

常见的H5移动端Web页面Bug问题解决方案总汇

移动web的兼容性bug的解决方法:远程接口的跨域问题,背景图片会模糊问题,图片加载,拨号功能等

H5和原生的职责划分

减少工作量(一套代码,多个平台),以及快速的更新迭代(譬如线上更新),而且还需要考虑Native端的高性能以及系统API调用能力,混合页面导航栏组件由原生实现,一些重要的业务页面、带有复杂动画或交互的页面以及一些固定页面由原生实现

h5中新属性 data-属性名的获取与设置,详解原生js操作h5的属性data-*

h5中新功能用来描述自定义的数据属性,也就是 data-* 自定义属性。在h5中我们可以使用以 data- 为前缀来设置我们需要的自定义属性,来进行一些数据的存放 ,在实际项目中使用比较多。这篇文章就总结如何通过原生js对data-*属性的操作。