如何从Android活动导航到Xamarin Forms ContentPage?

时间:2016-02-24 08:09:19

标签: xamarin xamarin.forms content-pages

我正在开发使用在线支付的应用程序。我在浏览器中使用以下内容打开了付款链接Device.OpenUri(Uri);。当用户完成订单付款后,他会使用自定义URL方案重定向到Android活动:

[Activity(Label = "Urlentryclass", ScreenOrientation = ScreenOrientation.Portrait, Icon = "@drawable/icon",
        MainLauncher = false, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation)]
    [IntentFilter(new[] {Android.Content.Intent.ActionView},
        DataScheme = "test",
        Categories = new[] {Android.Content.Intent.CategoryDefault, Android.Content.Intent.CategoryBrowsable})]
 public class Urlentryclass : FormsAppCompatActivity
...

如何从此活动导航到某个表单内容页面? 我尝试使用以下代码示例打开某个页面(使用事件处理程序完成)。

Navigation.PushAsync(new NavigationMenu(sisowStatus, modelStatus)).ConfigureAwait(false);

后跟this.finish();

Hower,显示的视图是在浏览器显示之前打开的最后一个视图。 Navigation.PushAsync似乎不会影响正在展示的观点。我尝试PopAsyncPopToRootAsync但似乎没有任何效果。

对于那些对事件处理程序感兴趣的人,这里是:

public static class PaymentNavigationHelper
{
    public delegate void PaymentExecutedHandler(string sisowStatus, string orderStatus);
    public static event PaymentExecutedHandler OnPaymentExecuted;

    public static void PaymentExecuted(string sisowStatus, string orderStatus)
    {
        OnPaymentExecuted?.Invoke(sisowStatus, orderStatus);
    }
}

我已经在我开始付款的内容网页上加入了该活动:

 PaymentNavigationHelper.OnPaymentExecuted += (sisowStatus, modelStatus) =>
 {
     Navigation.PushAsync(new NavigationMenu(sisowStatus, modelStatus)).ConfigureAwait(false);
 };

在处理付款网址的活动中,正在使用以下代码:

PaymentNavigationHelper.PaymentExecuted(status, test.Model.FirstOrDefault().Status);

非常感谢任何建议。

1 个答案:

答案 0 :(得分:0)