Глубокие ссылки в Android Xamarin - PullRequest
       24

Глубокие ссылки в Android Xamarin

0 голосов
/ 04 сентября 2018

У меня есть требование, чтобы приложение открывалось по ссылке электронной почты. Я попытался, добавив следующий код в файл 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, так и из chrome link. Ниже приведена команда оболочки adb, которую я пробовал.

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]]

Наконец, я получил где-то пример, в котором говорится о добавлении фильтра намерений в действие. Ниже приведен код, который работал для команды adb:

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

Но из-за хромовой ссылки это не сработало: <a href=”http://example.com”>app_link</a>

В настоящее время моя активность находится в корневой папке, но позже я переместил бы ее в папку действий в корневой папке. Будет ли это иметь значение?

Кроме того, как получить данные по URL-ссылке в MainActivity?

1 Ответ

0 голосов
/ 04 сентября 2018

, если ваша деятельность находится в папке действий, попробуйте,

<activity
android:name="activitys.MainActivity"
android:label="@string/app_name">
...