如何从浏览器转发后从我的Android应用程序接收URL。

时间:2014-05-03 17:56:40

标签: android android-intent android-manifest

当用户访问我的应用的浏览器页面时,我会将它们转发到这样的网址方案:

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部分。我怎么能这样做?

2 个答案:

答案 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.