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

我已经为 Android 和 iOS 实现了深度链接,下面的方法与 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": [ "*" ]
    }
   ]
  }
}

【问题讨论】:

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

标签: ios xamarin xamarin.forms deep-linking applinks


【解决方案1】:
  1. 确保您在 Apple Developer 中的关联域已启用。

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

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

【讨论】:

  • 我已按照上述所有步骤操作,是否需要在 apple-app-site-association 文件中有有效路径?我在路径中使用了 /*/,所以它应该允许所有重定向。
  • 可以,里面的json格式需要按照规定写。
  • 我已经编辑了我的问题并添加了apple-app-site-association文件内容,你可以检查一下
  • 以上评论中的链接包含有关 apple-app-site-association 的信息。它似乎判断你的文件是否正确。您可以通过他提供的链接进行测试。
猜你喜欢
  • 2013-06-25
  • 2021-08-06
  • 2015-10-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多