2016-02-24 34 views
0

我正在开发一个使用在线支付的应用程序。我在浏览器中使用以下链接打开付款链接:Device.OpenUri(Uri);如何从Android活动导航到Xamarin Forms ContentPage?

[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 
... 

如何浏览到某个表单内容页这项活动:当用户完成支付他的命令,他被使用自定义URL重定向计划到Android活动? 我尝试使用以下代码示例打开某个页面(这是通过使用事件处理程序完成的)。

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

通过this.finish();

豪尔,这是正在显示的是打开浏览器显示之前的最后一个视图的视图紧随其后。 看起来Navigation.PushAsync不影响正在显示的视图。我试过PopAsync,PopToRootAsync,但似乎没有任何工作。

对于那些有兴趣在事件处理程序,那就是:

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); 
    } 
} 

我subsribing到事件的内容页面,在这里我开始支付:

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

在它处理所述支付URL的活性,下面的代码被用于:

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

不限建议非常感谢。

回答