在html页面中判断本地app是否安装并打开

原创 2014年07月24日 12:43:26

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

1、编辑AndroidManifest.xml:

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

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

          <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>
        </activity>
   然后通过activity获得data数据:

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

  2、编写html页面:

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

   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。

  

html5页面启动手机上的app

html中其实是无法判断应用是否安装,除非在webview中通过js bridge,这里通过一种方式达到此目的。 1、编辑AndroidManifest.xml:     主要是增加第二...
  • hunhun1122
  • hunhun1122
  • 2016-08-19 10:44:36
  • 3149

如何通过Html网页调用本地安卓app?

如何使用html网页和本地app进行传递数据呢?经过研究,发现还是有方法的,总结了一下,大致有一下几种方式   一、通过html页面打开Android本地的app 1、首...
  • fei0724
  • fei0724
  • 2014-09-29 14:09:25
  • 6503

手机浏览器下判断是否安装某app,并判断是否打开该应用

今天在做前端输出的时候,需要和app的做些对接工作。就是在手机浏览器中下载某app时,能判断该用户是否安装了该应用。如果安装了该应用,就直接打开该应用;如果没有安装该应用,就下载该应用。那么下面就对在...
  • pjk1129
  • pjk1129
  • 2015-04-10 17:44:03
  • 25902

ios 点击网页页面判断是否安装app并打开

ios 点击网页页面判断是否安装app并打开,否则跳转app store的方 时间:2014-12-17 15:36  来源:未知  阅读次数: 2422 复制分享 我要评论 常常...
  • liaozhongping
  • liaozhongping
  • 2015-09-18 10:20:54
  • 937

android通过<em>html</em>打开本地<em>app</em>

LiHong_Chen 2015-11-12 14:10:30 很好,项目上就用到,谢谢楼主推荐 共4个 共2页 1 2 下一页 android中的通过网页链接打开本地<em>app</em> <em>如何在HTML</em>中的&lt;a ...
  • 2018年04月18日 00:00

Android Html交互_一_ 网页链接打开App页面

Android Html交互 网页链接打开本地App@(Android系统源码解析)[Android, html]声明:转载请注明出处,知识有限,如有错误,请多多交流指正!Android Html交互...
  • fenggit
  • fenggit
  • 2016-03-31 17:07:42
  • 4565

Android H5判断是否安装app和唤起APP

H5中是无法直接判断应用是否安装的,但是可以间接判断。 第一种方式, if(...){ document.location = ''; setTimeout(function(){    //此处如果...
  • robertcpp
  • robertcpp
  • 2016-05-05 18:35:08
  • 12410

web页面判断是否安装某app,并判断是否打开该应用

web页面判断手机里是否安转应用的原理就是:首先试着打开手机端某个app的本地协议;如果超时就转到app下载页,下载该app。 下面说说 URL scheme 概述 URL scheme 的作...
  • qq_30740239
  • qq_30740239
  • 2016-07-20 16:25:59
  • 7069

html中手机app调用QQ的方法

 在浏览器中可以通过JS代码打开QQ并弹出聊天界面,一般作为客服QQ使用。而在移动端腾讯貌似没有公布提供类似API,但是却可以使用schema模式来启动手机QQ。 以下为具体代码: ...
  • qq_36617521
  • qq_36617521
  • 2016-12-08 14:24:44
  • 1736

Android操作Html打开其他APP

现在Android程序员是越来越多,甚至在部分地区出现供大于求的局面,从大背景来看,Android的生态链会渐渐的趋于理智,并且会不断的更新人才以及开发工具,前几年的eclipse异常火爆,现在And...
  • qq_25193681
  • qq_25193681
  • 2016-08-08 17:11:50
  • 921
收藏助手
不良信息举报
您举报文章:在html页面中判断本地app是否安装并打开
举报原因:
原因补充:

(最多只允许输入30个字)