Xamarin 深度链接问题

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

我已经设置了一个简单的 Xamarin 应用程序来尝试使用深度链接。当我使用 IOS 模拟器时,深度链接工作得很好。但在使用 Android 设备进行调试时,我似乎无法让它在 Android 上工作。

我已经像这样设置了我的

MainActivity.cs

[IntentFilter(new[] { Intent.ActionView },
    Categories = new[] {
        Intent.ActionView,
        Intent.CategoryDefault,
        Intent.CategoryBrowsable
    },
    DataScheme = "photocapture",
    DataHost = "PhotoCapture",
    DataPathPrefix = "/photocapture/")
]
public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity
{
    protected override void OnCreate(Bundle savedInstanceState)
    {
        TabLayoutResource = Resource.Layout.Tabbar;
        ToolbarResource = Resource.Layout.Toolbar;

        base.OnCreate(savedInstanceState);
        global::Xamarin.Forms.Forms.Init(this, savedInstanceState);
        AndroidAppLinks.Init(this);

        LoadApplication(new App());
    }
}

然后在我的

App.cs
中我有一个对
OnAppLinkRequestReceived

的覆盖
protected override async void OnAppLinkRequestReceived(Uri uri)
{ .... }

在 Android 设备上,我下载了一个包含以下内容的 HTML 文件

href

<html>
 <head>
  <title>Product 12345</title>
 </head>
 <body>
  <a href="photocapture://PhotoCapture.Views.PhotoCapturePage?id=123">Deeplink</a>
 </body>
</html>

当我在 Android 设备上单击此链接时,应用程序未打开,并且

OnAppLinkRequestReceived
未在调试器中捕获。

此外,如果我搜索 Android 设备的应用程序名称,它也会显示出来。问题出在单击外部源的深层链接时。

我是否遗漏了某个步骤,或者我做错了什么?

android xamarin deep-linking
2个回答
0
投票

我使用的在 IOS 中有效的链接:

photocapture://PhotoCapture.Views.PhotoCapturePage?id=123

不适用于安卓系统。我必须将

photocapture://
更改为
http://
才能使其正常工作。所以最终的链接看起来像:

http://PhotoCapture.Views.PhotoCapturePage?id=123

0
投票

不要忘记在应用程序设置中启用 xamarin android 调试构建支持的网址。 appinfo->设置为默认->支持的网址

  1. 启用打开支持的链接
  2. 在“支持的网址”中添加您的域名(例如:zxy.com)
© www.soinside.com 2019 - 2024. All rights reserved.