深层链接使用“启动活动”打开应用程序,而不是用不一致的方式打开应用程序

时间:2018-11-23 14:13:36

标签: android xamarin deep-linking urbanairship.com android-deep-link

我在Android应用程序中使用推送通知实现了深度链接,但是当我使用推送通知深度链接消息而不是Deep Linking Activity打开应用程序时,该应用程序会不一致地打开启动活动。我试图更改android:launchMode="singleTop",但是没有用。我的“深层链接活动”和Android Manifest代码部分如下所示。

深层链接活动:

    [Activity(Label = "DeepLinkingActivity")]
public class DeepLinkingActivity : Activity
{                                                                    
    protected override void OnCreate(Bundle savedInstanceState)
    {
        base.OnCreate(savedInstanceState);

        if (SessionContext.DeepLinkingMessageContent == null)
        {
            CheckDeepLinkingContent(Intent);
        }
    }

    protected override void OnNewIntent(Intent intent)
    {
        base.OnNewIntent(intent);

        if (SessionContext.DeepLinkingMessageContent == null)
        {
            CheckDeepLinkingContent(intent);
        }
    }

    void CheckDeepLinkingContent(Intent intent)
    {
        if (intent.Data != null)
        {

            var intentData = Intent.Data;
            var hostData = intentData.Host; 
            var path = intentData.Path; 

            var pathContent = path.Split('/');

            //...
            //processing content of the deep linking message

            SessionContext.DeepLinkingMessageContent = deepLinkingContent;

            StartActivity(typeof(LoginView));
            Finish();
        }
    }

Android清单的一部分:

        <activity android:name="myapp.android.views.DeepLinkingActivity" android:launchMode="singleTop">
        <intent-filter android:autoVerify="true">
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />
            <data android:scheme="myappscheme" android:host="apphost"/>
       </intent-filter>
    </activity>

0 个答案:

没有答案