0

我正在我的 Xamarin Forms 应用程序上测试应用程序链接/深度链接/通用链接。我有一个应用程序可以按预期正确拦截 URL,但是当我在应用程序中使用 Shell 导航到页面时,Shell.Current 为空。

Visual Studio 2022、Android Pixel 4 模拟器、Xamarin Forms 版本 5.0.0.2291

设置:简单的 onAppLinkRequestReceived 处理程序。调试器在此代码处执行和中断,所以我知道我的应用链接设置正确。

protected override async void OnAppLinkRequestReceived(Uri uri)
{
    base.OnAppLinkRequestReceived(uri);

    var shellRoute = uri.PathAndQuery;
    try
    {
        Log.Information("User followed applink for {shellRoute}", shellRoute);
        Shell.Current.GoToAsync(shellRoute);
    }
    catch(Exception ex)
    {
        Log.Error(ex, "User encountered an error attempting to navigate to an applink request", shellRoute);
    }
}

这里的问题是 Shell.Current 为空,所以我为 nullref。我希望 shell.current 应该始终有效?

我正在使用 Android 建议的测试技术对此进行测试,可在此处找到:

.\adb shell am start -W -a android.intent.action.VIEW -d "my-url" my-package-id

空壳当前值出现意外,尤其是当网络上的其他示例表明直接从 applinkrequest 事件导航应该有效时?

4

0 回答 0