为了让myapp://wallet指向WalletActivity,我编写了下面的代码,它成功了:

    <activity
        android:name=".ui.WalletActivity"
        android:label="@string/title_activity_wallet"
        android:screenOrientation="portrait"
        android:theme="@style/MaterialThemeNoActionBar"
        android:launchMode="singleTop"
        android:exported="true">
        <intent-filter android:label="@string/title_activity_link_wallet" >
            <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"
                android:host="wallet" />
        </intent-filter>
    </activity>

我对UserProfileActivity做了类似的事情,但它在函数onCreate的行中崩溃了(显然),因为我没有向该活动的意图发送任何值。
那么,在这种情况下,有没有一种方法可以将id传递给被调用活动的意图,在正常情况下,我在调用活动中使用String id = intent.getExtras().getString("id");就可以做到这一点(其中id是被调用活动的)

最佳答案

String id = intent.getExtras().getString("id")对于deeplink是错误的。
您可以使用

Uri uri = getIntent().getData();

如果您提供了一个getter,那么您可以使用其中一个getter来检索您的Intent。例如id
String id = data.getQueryParameter("id");

应该给你myapp://wallet/test?id=100

10-07 22:20
查看更多