当用户访问我的应用的浏览器页面时,我会将它们转发到这样的网址方案:
intent://share?id=123#Intent;package=com.aerstone.mobile;scheme=myapp;launchFlags=268435456;end;
我已经对此进行了测试,这很好用。现在,当用户从浏览器访问我的应用程序主页并安装应用程序时,该应用程序会自动打开。
我的清单中的相关部分是:
<activity android:configChanges="keyboardHidden|orientation" android:label="@string/app_name"
android:name=".ui.activity.MainActivity"
android:launchMode="singleTask" >
<!-- add the above launchMode attribute -->
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
<!-- add the below additional 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:scheme="myapp"/>
</intent-filter>
</activity>
问题
应用打开后,如何获取网址?我想要获取URL的id=123
部分。我怎么能这样做?
答案 0 :(得分:1)
根据您的活动是否已创建,在getIntent().getData()
或onCreate()
传递getData()
至Intent
时调用onNewIntent()
。这将返回代表您的网址的Uri
。
答案 1 :(得分:1)
在onCreate()
Uri uri = getIntent().getData(); //Returns the URI that was used.
String id = uri.getQueryParameter("id"); //Gives any parameter passed in the URI.