小编Fuo*_*ong的帖子

使用自定义 URL 方案通过浏览器启动 Xamarin Android 应用程序

程序

我有一个需要 URL 方案的跨平台 Xamarin 项目。要在 Xamarin Android 上启用此功能,我在AndroidManifest.xml文件中添加了以下代码,引用以启动自定义 android 应用程序帖子。

<activity android:name=".MainActivity">
    <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="urlschemetest" android:host="testurl" />
    </intent-filter>
</activity>
Run Code Online (Sandbox Code Playgroud)

urlschemetest://testurl直接在 Android 中的浏览器中键入将转到 Google 搜索,而不是启动应用程序。所以,我有一个简单的html页面,它有一个打开应用程序的超链接,test url scheme

<a href="urlschemetest://testurl">open app</a>
Run Code Online (Sandbox Code Playgroud)

问题

通过单击上面的超链接,该应用程序不会启动。Visual StudioUnhandled Exception在输出中显示错误

Java.Lang.RuntimeException:无法实例化活动 ComponentInfo{com.companyname.UrlSchemeTest/com.companyname.UrlSchemeTest.MainActivity}:java.lang.ClassNotFoundException:在路径上找不到类“com.companyname.UrlSchemeTest.MainActivity”: DexPathList[[zip 文件 "/data/app/com.companyname.UrlSchemeTest-1/base.apk"],nativeLibraryDirectories=[/data/app/com.companyname.UrlSchemeTest-1/lib/arm, /data/app/ com.companyname.UrlSchemeTest-1/base.apk!/lib/armeabi-v7a, /vendor/lib, /system/lib]]

尝试的解决方案

1)我看了看属性AndroidManifest.xml,也许这是因为的属性不相匹配的命名空间中使用MainActivity.cs。所以我改变了它。

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
   android:versionCode="1" 
   android:versionName="1.0" 
   package="UrlSchemeTest.Droid" …
Run Code Online (Sandbox Code Playgroud)

url-scheme deep-linking intentfilter xamarin.android applinks

2
推荐指数
1
解决办法
6197
查看次数