xamarin 表单应用程序 link - 从 ios 应用程序委托打开 PCL 视图
xamarin forms app link - open PCL view from ios app delegate
在 Xamarin Forms 跨平台应用程序中,我可以从外部电子邮件应用程序打开该应用程序 link。
它在 android 中打开很好,通过向清单添加一个意图,然后在开始的 activity 中,我创建另一个意图来触发主 activity
public class AppLinkActivity : Activity
{
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
string code = null;
if (Intent.Data.Query != null)
{
code = Intent.Data.Query.Substring(Intent.Data.Query.LastIndexOf('=') + 1);
}
if (Intent.Data != null)
{
var uri = Intent.Data;
if (uri != null)
{
Intent i = new Intent(this, typeof(MainActivity));
i.AddFlags(ActivityFlags.ReorderToFront);
i.PutExtra("code", code);
i.PutExtra("flag", true);
this.StartActivity(i);
}
}
this.FinishActivity(0);
}
}
在 ios 中,应用程序link 触发了应用程序委托中 OpenUrl 的覆盖,但我不确定如何从这里导航到特定的 PCL 页面,发生的事情是应用程序在其上次打开的页面打开
public override bool OpenUrl(UIApplication app, NSUrl url, string sourceApp, NSObject annotation)
{
string _uri = url.ToString();
string code = _uri.Substring(_uri.LastIndexOf('=') + 1);
LoadApplication(new App(true, code));
return true;
}
谁能用这个给我指出正确的方向?我真正需要做的就是从 OpenUrl 方法导航到 PCL
中的视图
对于任何感兴趣的人,我通过替换
来排序
LoadApplication(new App(true, code));
与
App.Current.MainPage = enterPin();
调用
public Page enterPin()
{
return new EnterPinPage(SimpleIoc.Default.GetInstance<ISecureStorage>(), code, 1);
}
在 Xamarin Forms 跨平台应用程序中,我可以从外部电子邮件应用程序打开该应用程序 link。
它在 android 中打开很好,通过向清单添加一个意图,然后在开始的 activity 中,我创建另一个意图来触发主 activity
public class AppLinkActivity : Activity
{
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
string code = null;
if (Intent.Data.Query != null)
{
code = Intent.Data.Query.Substring(Intent.Data.Query.LastIndexOf('=') + 1);
}
if (Intent.Data != null)
{
var uri = Intent.Data;
if (uri != null)
{
Intent i = new Intent(this, typeof(MainActivity));
i.AddFlags(ActivityFlags.ReorderToFront);
i.PutExtra("code", code);
i.PutExtra("flag", true);
this.StartActivity(i);
}
}
this.FinishActivity(0);
}
}
在 ios 中,应用程序link 触发了应用程序委托中 OpenUrl 的覆盖,但我不确定如何从这里导航到特定的 PCL 页面,发生的事情是应用程序在其上次打开的页面打开
public override bool OpenUrl(UIApplication app, NSUrl url, string sourceApp, NSObject annotation)
{
string _uri = url.ToString();
string code = _uri.Substring(_uri.LastIndexOf('=') + 1);
LoadApplication(new App(true, code));
return true;
}
谁能用这个给我指出正确的方向?我真正需要做的就是从 OpenUrl 方法导航到 PCL
中的视图对于任何感兴趣的人,我通过替换
来排序LoadApplication(new App(true, code));
与
App.Current.MainPage = enterPin();
调用
public Page enterPin()
{
return new EnterPinPage(SimpleIoc.Default.GetInstance<ISecureStorage>(), code, 1);
}