1

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

[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();

但是,正在显示的视图是在浏览器显示之前打开的最后一个视图。似乎这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);

任何建议都将受到高度赞赏。

4

1 回答 1

0

以下链接回答了问题:

http://forums.xamarin.com/discussion/comment/182108#Comment_182108

于 2016-02-24T15:44:06.477 回答