浏览器加载HTML页面唤起手机中的App最全攻略

Posted CodingForAndroid

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了浏览器加载HTML页面唤起手机中的App最全攻略相关的知识,希望对你有一定的参考价值。

android通过Scheme协议打开APP界面

web页通过浏览器打开

<body>
    <a href="javascript:;" id="openApp">打开户端</a>
</body>
 
<script type="text/javascript">
    document.getElementById('openApp').onclick = function(e)
        if(navigator.userAgent.match(/(iPhone|iPod|iPad);?/i))
           
            window.location.href = "com.baidu.tieba://";//ios app协议
            window.setTimeout(function() 
                window.location.href = "https://itunes.apple.com/cn/app/id477927812";
            , 2000)
           
        if(navigator.userAgent.match(/android/i))
           
            window.location.href = "dxst://com.zmzx.college.search/web?url=https://www.baidu.com";//android app协议
            window.setTimeout(function() 
                window.location.href = "https://www.qq.com/";//android 下载地址
            , 2000)    
        
    ;
</script>

js scheme 打开手机app的方法

function schemeUrl(url,callbak)
    var ifr = document.createElement("iframe");
    ifr.src = url; /***打开app的协议,如zhe800://goto_home***/
    ifr.style.display = "none";
    document.body.appendChild(ifr);
    //app没反应1s后执行另外的方法
    window.setTimeout(function()
      document.body.removeChild(ifr);
      if(typeof callbak == 'function')callbak();
    ,1000)
;

Android 中 配置scheme

<activity
    android:name="xxx"
    android:label="@string/app_name"
    android:launchMode="singleTask"
    android:screenOrientation="portrait">
    <intent-filter>
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE" />
        <data
            android:scheme="scheme1"
            android:host="host1"
            android:path="/path1"
            android:port="8080" />
    </intent-filter>
</activity>

APP 中获取 Scheme中的参数值

Uri uri = getIntent().getData();
if (uri != null) 
    // 完整的url信息
    String url = uri.toString();
    Log.i(TAG, "url:" + uri);

    // scheme部分
    String scheme = uri.getScheme();
    Log.i(TAG, "scheme:" + scheme);

    // host部分
    String host = uri.getHost();
    Log.i(TAG, "host:" + host);

    // port部分
    int port = uri.getPort();
    Log.i(TAG, "port:" + port);

    // 访问路径
    String path = uri.getPath();
    Log.i(TAG, "path:" + path);

    List<String> pathSegments = uri.getPathSegments();

    // Query部分
    String query = uri.getQuery();
    Log.i(TAG, "query:" + query);

    //获取指定参数值
    String success = uri.getQueryParameter("success");
    Log.i(TAG, "success:" + success);

参考:https://www.jianshu.com/p/57f79fc83233

如果你也热衷技术欢迎加群一起进步:230274309 。 一起分享,一起进步!少划水,多晒干货!!欢迎大家!!!(进群潜水者勿加)

点击链接加入群聊【编程之美】:https://jq.qq.com/?_wv=1027&k=h75BfFCg

或者扫码

以上是关于浏览器加载HTML页面唤起手机中的App最全攻略的主要内容,如果未能解决你的问题,请参考以下文章

Html唤起手机APP,如果有就唤起,如果没有就跳到下载页。

Html唤起手机APP,如果有就唤起,如果没有就跳到下载页。

移动web唤起手机拍照摄影录音及拨号

微信浏览器中唤起手机默认浏览器的实现方式

h5唤起app方法

H5网页在浏览器中唤起app,怎么实现?