Android Intent - 首次加载来自网址

时间:2015-04-30 10:42:51

标签: android android-intent

我正在尝试通过深层链接从网页加载我的应用程序。

我正在使用window.location在网页被点击时调用intent url。

该应用程序打开正常使用: window.location("intent://open/#Intent;scheme=testapp;package=gb.testapp.testapp;S.id=3026;end");但是,我试图传入的ID似乎只是在第二次加载URL时出现...

我在AndoridManifest.xml中的意图是:

<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="testapp"  android:host="open" android:path="/" />
 </intent-filter>

我在MainActivity.java中调用以下代码

public void onNewIntent(Intent intent) {

        super.onNewIntent(intent);

         Bundle extras = getIntent().getExtras();
         System.out.println("URLLOAD -  " + intent.getDataString());
         if (extras != null){
             String sid = extras.getString("id");

             if (sid!=null)
             {
                 System.out.println("URLLOAD - FOUND PARAMS");
             }


         }else{
             System.out.println("URLLOAD -  NO PARAMS");
         }
}

这会导致: 安装应用后首次打开网址:

System.out﹕ URLLOAD -  testApp://open/
System.out﹕ URLLOAD -  NO PARAMS

再次打开网址

I/System.out﹕ URLLOAD -  testApp://open/?id=3026
I/System.out﹕ URLLOAD - FOUND PARAMS

有没有人遇到过类似的问题或者我的代码有问题?

谢谢, 西蒙

1 个答案:

答案 0 :(得分:0)

我的猜测是,第一次启动你的acitivty(app)时,正在调用onCreate()方法而不是onNewIntent()。对于所有后续调用,您的活动将通过onNewIntent方法“更新”。