Android上.NET MAUI应用程序中的深度链接仅部分工作

jfgube3f  于 2023-01-31  发布在  .NET
关注(0)|答案(1)|浏览(157)

我正在尝试在我的应用中实现深度链接。也就是说,当用户访问我的网站时,它应该打开应用。
我觉得我错过了一些小东西,让这个最终工作,但我不知道是什么。下面我的描述,我会附上截图的一切,我提到。
为了测试它是否能正常工作,我创建了一个带有两个链接的网页,其中一个链接指向应用程序ID(在我的例子中是“il.co.lilo.journal_app_v2”),因此该链接是:https://il.co.lilo.journal。当你点击它时,应用程序就会打开,我在MainActivity.cs文件中的OnCreate事件中处理这个事件。这样就可以了(不过当你回到浏览器时,它会显示一个丑陋的“站点无法到达”错误)。
另一个链接,链接到我的网站“https://lilo.co.il/bubu/1“。点击这个链接只需转到网站而不打开应用程序,这就是我需要帮助的地方。
我已经创建了assetlinks.json,它位于https://lilo.co.il/.well-known/assetlinks.json
为了进行测试,我使用assetlinks.json文件中使用的密钥库文件创建了一个APK,并安装在我的手机上。
我的MainActivity.cs文件具有以下Intent过滤器:

[IntentFilter(new[] { Android.Content.Intent.ActionView },
                      DataScheme = "http",
                      DataHost = "lilo.co.il",
                      DataPathPrefix = "/bubu",
                      AutoVerify = true,
                      Categories = new[] { Android.Content.Intent.ActionView, Android.Content.Intent.CategoryDefault, Android.Content.Intent.CategoryBrowsable })]
[IntentFilter(new[] { Android.Content.Intent.ActionView },
                      DataScheme = "https",
                      DataHost = "lilo.co.il",
                      DataPathPrefix = "/bubu",
                      AutoVerify = true,
                      Categories = new[] { Android.Content.Intent.ActionView, Android.Content.Intent.CategoryDefault, Android.Content.Intent.CategoryBrowsable })]
[IntentFilter(new[] { Android.Content.Intent.ActionView },
                      DataScheme = "http",
                      DataHost = "il.co.lilo.journal_app_v2",
                      DataPathPrefix = "/bubu",
                      AutoVerify = true,
                      Categories = new[] { Android.Content.Intent.ActionView, Android.Content.Intent.CategoryDefault, Android.Content.Intent.CategoryBrowsable })]
[IntentFilter(new[] { Android.Content.Intent.ActionView },
                      DataScheme = "https",
                      DataHost = "il.co.lilo.journal_app_v2",
                      DataPathPrefix = "/bubu",
                      AutoVerify = true,
                      Categories = new[] { Android.Content.Intent.ActionView, Android.Content.Intent.CategoryDefault, Android.Content.Intent.CategoryBrowsable })]

我为测试而创建的页面的HTML是:

<a href="https://il.co.lilo.journal_app_v2/bubu/1">https://il.co.lilo.journal_app_v2/bubu/1</a><br>
<a href="https://lilo.co.il/bubu/1">https://lilo.co.il/bubu/1</a><br>

当点击顶部链接(https://il.co.lilo.journal_app_v2/bubu/1)时,我的应用程序打开效果很好,但当我返回浏览器时,我看到以下情况,这是不好的:

当我点击第二个链接时,就像我之前说的,它只会转到网站,即使当我在应用信息中查看我的应用“支持的网址”时:

我可以看到它显示我的网站URL:

5n0oy7gb

5n0oy7gb1#

好吧,我终于让它起作用了。
下面的步骤是我让它工作所做的(如果有更简单的方法,请纠正我)
1.我在Google Play控制台中创建了一个应用程序,然后在VS中创建了一个捆绑包并上传了它(换句话说,如果不打开Google开发帐户,你就无法测试深度链接)。
1.然后我在Google Play控制台x1c 0d1x中进入增长-〉深层链接
1.它会给予你清单中定义的链接的细节,并指出任何问题。它也会在webiste上检查你的assetlinks.json,如果你的assetlinks.json不正确,它会告诉你需要什么(在我的例子中,我做了修改)
1.在模拟器中测试时,链接仍然不起作用。只有在从Google Play控制台下载APK并安装到我的手机上后,它才起作用:

,然后

此时,在我的物理手机上的浏览器中单击链接,正确打开了我的应用

相关问题