Xamarin深度链接问题

yrefmtwq  于 7个月前  发布在  其他
关注(0)|答案(2)|浏览(59)

我已经设置了一个简单的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设备的应用程序名称,它确实会显示出来。问题只是当点击外部来源的深层链接时。
是我漏了一步,还是我做错了什么?

0kjbasz6

0kjbasz61#

我在IOS中使用的链接:

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

字符串
在Android上不工作。我不得不将photocapture://更改为http://才能使其工作。因此,最终链接看起来像:

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

0s0u357o

0s0u357o2#

别忘了在应用设置中为xamarin android调试版本启用支持的网址。appinfo->设置为默认值->支持的网址
1.启用打开支持的链接
1.在“支持的网址”中添加您的域名(例如:zxy.com)

相关问题