Xamarin深层链接问题

时间:2018-11-08 12:04:15

标签: android xamarin deep-linking

我已经设置了一个简单的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设备上,我已经下载了带有以下href

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

当我在Android设备上单击此链接时,该应用程序没有打开,并且OnAppLinkRequestReceived没有捕获到调试器中。

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

我错过了一步还是做错了什么?

1 个答案:

答案 0 :(得分:0)

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

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

在android上不起作用。我必须将photocapture://更改为http://才能正常工作。所以最终链接看起来像:

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