我正在开发使用在线支付的应用程序。我在浏览器中使用以下内容打开了付款链接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
似乎不会影响正在展示的观点。我尝试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);
}
}
我已经在我开始付款的内容网页上加入了该活动:
PaymentNavigationHelper.OnPaymentExecuted += (sisowStatus, modelStatus) =>
{
Navigation.PushAsync(new NavigationMenu(sisowStatus, modelStatus)).ConfigureAwait(false);
};
在处理付款网址的活动中,正在使用以下代码:
PaymentNavigationHelper.PaymentExecuted(status, test.Model.FirstOrDefault().Status);
非常感谢任何建议。