【发布时间】: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