html5页面可以启动手机上的app吗

 我来答
开水
推荐于2018-03-01 · 用心倾听故事,品味生活!
开水
采纳数:92 获赞数:701

向TA提问 私信TA
展开全部

html中其实是无法判断应用是否安装,除非在webview中通过js bridge,这里通过一种方式达到此目的。

1、编辑AndroidManifest.xml:

    主要是增加第二个<intent-filter>,myapp用来标识schema,最好能保证手机系统唯一,那样就可以打开应用,而不是弹出一个选择框。

    android:pathPrefix标识url的path,可以附带自己的数据通过string传递到activity,比如完整url为 myapp://xxx/openwith?data=mydata

[html] view plaincopy

<activity  
  android:name="com.abc.MainActivity"  
  android:configChanges="orientation|keyboardHidden|navigation|screenSize"  
  android:screenOrientation="landscape"  
  android:theme="@android:style/Theme.NoTitleBar.Fullscreen" >  
  <intent-filter>  
      <action android:name="android.intent.action.MAIN" />  
      <category android:name="android.intent.category.LAUNCHER" />  
  </intent-filter>  
  <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="myapp" android:pathPrefix="/xxx/openwith" />  
  </intent-filter>  
t;/activity>

   然后通过activity获得data数据:

[java] view plaincopy
 public void onCreate(Bundle savedInstanceState) {  
     Uri uridata = this.getIntent().getData();  
     String mydata = uridata.getQueryParameter("data");  
     ...  
}


  2、编写html页面:

   整个页面也许是某个app的详细介绍,这里只写出关键的js代码:

[javascript] view plaincopy
function openApp() {  
  
        if (/android/i.test(navigator.userAgent)) {  
             var isrefresh = getUrlParam('refresh'); // 获得refresh参数  
             if(isrefresh == 1) {  
                 return  
             }  
             window.location.href = 'myapp://xxx/openwith?data=mydata';  
             window.setTimeout(function () {  
                     window.location.href += '&refresh=1' // 附加一个特殊参数,用来标识这次刷新不要再调用myapp:// 了  
             }, 500);  
         }  
  
}

  上面代码可以达到这样一个目的,先请求 myapp:// ,如果系统能处理,或者说已经安装了myapp表示的应用,那么就可以打开,另外,如果不能打开,直接刷新一下当前页面,等于是重置location。

拾風光04
2015-02-11 · TA获得超过730个赞
知道大有可为答主
回答量:1471
采纳率:100%
帮助的人:2539万
展开全部
:Html5是一种网页开发语言,现在仍处于发展阶段,但大部分浏览器已经支持某些 HTML5 技术为开发者提供了一个跨平台的移动apps开发方案,并且该方案具有很好的扩展性和灵活性。 如今国内使用html5开发app应用技术尚有欠缺
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式