在Xamarin Forms跨平台应用中,我可以通过外部电子邮件应用链接打开该应用。
它在android中打开就好了,通过向清单添加一个意图,然后在开始的活动中,我创建了另一个触发主要活动的意图
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中,applink触发了应用委托中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中的视图
答案 0 :(得分:1)
对于任何有兴趣的人,我通过替换
对此进行了排序LoadApplication(new App(true, code));
与
App.Current.MainPage = enterPin();
调用
public Page enterPin()
{
return new EnterPinPage(SimpleIoc.Default.GetInstance<ISecureStorage>(), code, 1);
}