深度链接导航到应用程序页面并返回 iOS 中的主页

Posted

技术标签:

【中文标题】深度链接导航到应用程序页面并返回 iOS 中的主页【英文标题】:Deep linking navigate to application page and comes back to main page in iOS 【发布时间】:2021-12-08 14:50:18 【问题描述】:

我已经为 androidios 实现了深度链接,下面的方法与 android 完美配合,但我在 iOS 上遇到了问题。

它导航到应用链接页面,但自动返回主屏幕。

下面是我的方法的实现。我已经按照 MSDN 中的所有内容进行深度链接。

protected override async void OnAppLinkRequestReceived(Uri uri)

    string appDomain = "https://" + "mydomain.com".ToLowerInvariant() + "/";
    if (!uri.ToString().ToLowerInvariant().StartsWith(appDomain, StringComparison.Ordinal))
        return;

    string pageUrl = uri.ToString().Replace(appDomain, string.Empty).Trim();
    var parts = pageUrl.Split('?');
    string page = parts[0];
    string pageParameter = parts[1].Replace("id=", string.Empty);

    var formsPage = Activator.CreateInstance(Type.GetType(page));
    var jobItemPage = formsPage as JobDetail;
    
    if (jobItemPage != null)
    
        jobItemPage.BindingContext = new JobDetailViewModel(int.Parse(pageParameter));
        await MainPage.Navigation.PushAsync(formsPage as Page);
    

    base.OnAppLinkRequestReceived(uri);

以下是我的 apple-app-site-association 文件:


"applinks": 
 "apps": [],
 "details": [
   
     "appID": "MyTeamIdPrefix.com.deepLinking",
     "paths": [ "*" ]
    
   ]
  

【问题讨论】:

参考***.com/questions/39181728/… 上面的链接是一个不同的问题,点击链接时我的应用程序正在打开,但它没有重定向到页面 在调试器下运行,在该方法的开始处有一个断点。 await MainPage.Navigation.PushAsync(formsPage as Page); 线上的另一个断点。它会在两个断点处停止吗?如果没有,请再试一次,使用 Step Over 一次只做一行。它在哪一行没有达到预期的效果? 是的,它在 MainPage.Navigation.PushAsync(formsPage as Page) 出现一次,应用程序导航到它,但之后它会自动返回。 【参考方案1】:

    确保您在 Apple Developer 中的关联域已启用。

    创建了 apple-app-site-association。而且内容没有错误。

    启用关联域并在 Entitlements.plist 文件中添加网站的域。

【讨论】:

我已按照上述所有步骤操作,是否需要在 apple-app-site-association 文件中有有效路径?我在路径中使用了 /*/,所以它应该允许所有重定向。 可以,里面的json格式需要按照规定写。 我已经编辑了我的问题并添加了apple-app-site-association文件内容,你可以检查一下 以上评论中的链接包含有关 apple-app-site-association 的信息。它似乎判断你的文件是否正确。您可以通过他提供的链接进行测试。

以上是关于深度链接导航到应用程序页面并返回 iOS 中的主页的主要内容,如果未能解决你的问题,请参考以下文章

从主详细信息中的选项卡式页面导航到登录页面时,应用程序在iOS13 +中崩溃

为啥我不能直接在 iOS 中的任何地图应用程序上进行深度链接以进行轮流导航? [关闭]

在本机反应中处理设备后退按钮

用户登录并重定向到主页后,如何在主页导航栏中隐藏登录链接并显示注销链接?

Firebase 动态链接在 iOS 14 上的 Safari 中留下空白页面

如何在 React 中登录页面后配置侧边栏导航中的路由?