美文网首页收藏夹
H5唤醒app并跳转到指定页面

H5唤醒app并跳转到指定页面

作者: a538d328e24b | 来源:发表于2018-12-28 18:09 被阅读256次

    原创在https://blog.csdn.net/m0_37678565/article/details/68491444

    在manifest文件中最开始启动的activity中添加:

    <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:host="host"

                android:pathPrefix="/pathPrefix"

                android:scheme="scheme" />

        </intent-filter>

    //注意host,pathPrefix,scheme都是自己自定义的,只要与h5页面调用的一致即可,如下所示

    <activity

        android:name=".activitys.MainActivity"

        android:label="@string/app_name"

        android:screenOrientation="portrait">

        <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.DEFAULT" />

            <category android:name="android.intent.category.BROWSABLE" />

            <data

                android:host="host"

                android:pathPrefix="/pathPrefix"

                android:scheme="scheme" />

        </intent-filter>

    </activity>

    如果要跳转到指定的页面,在MainActivity的onCreate()中添加:

    Intent intent = getIntent();

    Uri uri = intent.getData();

    if (uri != null) {

            String routeId = uri.getQueryParameter("pid");

            Intent intent0 = new Intent(MainActivity.this, ZhidingActivity.class);

            startActivity(intent0);

    }

    uri.getQueryParameter("pid");获取h5页面传递的参数,如果没有的话可以忽略

    注意一点,微信上对于app的唤醒有拦截,在浏览器中才可以起作用

    对于h5的代码如下:

    <span style="font-size:18px;"><script>  

    function startAPP(){  

    window.location = "scheme://host/pathPrefix";  

    }  

    function downloadAPP(){  

    window.location = "apk下载地址";  

    }  

    </script>  

    <style type="text/css">  

            body{background:#D2D460;text-align:center;margin-top:10%}  

            div{width:100%;margin:0 auto;background:#fff;text-align:left;}  

    </style>  

    </head>  

    <body>  

    <?php   

    $var_name =  $_GET["isappinstalled"];   

    if ($var_name=="1"){  

        echo '<img src=images/start.png alt=打开APP onclick=startAPP() ></img>';  

    }else if ($var_name=="0"){  

        echo '<img src=images/download.png alt=打开APP onclick=downloadAPP() ></img>';  

    }else{  

        echo '<img src=images/welcome.png alt=打开APP onclick=startAPP() ></img>';  

    }  

    ?>  

    </body></span> 

    一定要注意:

    window.location = "scheme://host/pathPrefix"; 

    scheme,host,pathPrefix一定要与android定义的一致

    如果要传递参数的话:在后面拼接?pid=...即可

    ---------------------

    作者:又宠又烦的Android女

    来源:CSDN

    原文:https://blog.csdn.net/m0_37678565/article/details/68491444

    版权声明:本文为博主原创文章,转载请附上博文链接!

    相关文章

      网友评论

        本文标题:H5唤醒app并跳转到指定页面

        本文链接:https://www.haomeiwen.com/subject/rxuelqtx.html