美文网首页
浏览器启动app简单记录

浏览器启动app简单记录

作者: 爱吃鱼的外星人 | 来源:发表于2018-03-19 18:09 被阅读12次

简单记录下浏览器启动app

浏览器格式如下:

<a href="[scheme]://[host]/[path]?[query]">启动应用程序</a>

scheme:判别启动的App。 ※详细后述

host:适当记述

path:传值时必须的key ※没有也可以

query:获取值的Key和Value ※没有也可以

<a href="myapp://jp.app/openwith?name=alien&age=18">启动应用程序</a>

最好在LAUNCHER页面启动,要不app未打开时候,调用非LAUNCHER页面,返回时候页面需要处理

※注意事项:intent-filter的内容【android.intent.action.MAIN】和【android.intent.category.LAUNCHER】这2个,不能与这次追加的内容混合。

所以,如果加入了同一个Activity,请按以下这样做,否则会导致应用图标在桌面消失等问题。

<activity
    android:name=".welcome.WelcomeActivity"
    android:screenOrientation="portrait"
    android:theme="@style/TransparentStatusBarTheme">
    <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="jp.app
            android:pathPrefix="/openwith"
            android:scheme="alienapp" />
     </intent-filter>
</activity>

接下来在Activity中需要取值的地方添加以下代码:

   /**
    * 检查是否浏览器传递数据
    */
   private void getData() {
       Intent intent = getIntent();
       if (intent != null) {
           String action = intent.getAction();
           if (Intent.ACTION_VIEW.equals(action)) {
               Uri uri = intent.getData();
               if (uri != null) {
                 String name = uri.getQueryParameter("name");
                 String age= uri.getQueryParameter("age");
               }
           }
       }
    }

获取数据后就可以根据业务进行处理了,Over~

相关文章

网友评论

      本文标题:浏览器启动app简单记录

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