android xamarin中的深层链接

问题描述 投票:0回答:1

我有一个要求,我希望我的应用程序从电子邮件链接打开。我尝试在AndroidManifest文件中添加以下代码。

<activity
android:name=".MainActivity"
android:label="@string/app_name">
<!-- Accept chrome links -->
<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="http"
          android:host="example.com"
        android:pathPrefix="/"/>
</intent-filter>
<!-- Accept adb data flag -->
<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="http"
          android:host="example.com"/>
</intent-filter>

但是从abd shell和chrome链接都没有用。下面是我尝试的adb shell命令。

adb shell am start -a android.intent.action.VIEW -d "http://example.com" QRcodeScanner.QRcodeScanner

它打开了应用程序,但后来我收到了错误:

QRcodeScanner.QRcodeScanner.MainActivity}: java.lang.ClassNotFoundException: Didn't find class "QRcodeScanner.QRcodeScanner.MainActivity" on path: DexPathList[[zip file "/data/app/QRcodeScanner.QRcodeScanner-1/base.apk"],nativeLibraryDirectories=[/data/app/QRcodeScanner.QRcodeScanner-1/lib/arm64, /data/app/QRcodeScanner.QRcodeScanner-1/base.apk!/lib/arm64-v8a, /system/lib64, /vendor/lib64]]

最后,我在某个地方得到一个例子,说明在活动中添加一个intent过滤器。以下是适用于adb命令的代码:

   [IntentFilter(new[] { Intent.ActionView },
          Categories = new[] { Intent.CategoryBrowsable, Intent.CategoryDefault },
          DataScheme = "http",
          DataHost = "example.com",
          AutoVerify = true)]

但它没有使用chrome链接:<a href=”http://example.com”>app_link</a>

我的活动目前在根文件夹中,但我后来将其移动到根文件夹下的activities文件夹。它会有所作为吗?

另外,如何从MainActivity中的URL链接检索数据?

android xamarin.android deep-linking
1个回答
0
投票

如果您的活动在activitys文件夹下,请尝试,

<activity
android:name="activitys.MainActivity"
android:label="@string/app_name">
© www.soinside.com 2019 - 2024. All rights reserved.