我正在尝试通过深层链接从网页加载我的应用程序。
我正在使用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
有没有人遇到过类似的问题或者我的代码有问题?
谢谢, 西蒙
答案 0 :(得分:0)
我的猜测是,第一次启动你的acitivty(app)时,正在调用onCreate()方法而不是onNewIntent()。对于所有后续调用,您的活动将通过onNewIntent方法“更新”。