用于打开浏览器弹出对话框的Windows UWP Launcher.LaunchUriAsync方法

时间:2016-07-12 02:03:07

标签: windows win-universal-app windows-10 windows-10-universal windows-10-mobile

我在Windows UWP(桌面/平板电脑和手机)中有一个应用程序,我正在与Paypal支付网关集成。当我准备将数据传递给paypal时,我需要打开一个弹出式浏览器并显示用户确认的paypal对话框。(第https://checkout.paypal.com/one-touch-login-sandbox/index.html页)

我正在尝试使用Launcher.LaunchUriAsync打开页面,如下所示,

Uri uri = new Uri(args.Uri.AbsoluteUri);
LauncherOptions options = new LauncherOptions();
options.TargetApplicationPackageFamilyName = "Microsoft.MicrosoftEdge_8wekyb3d8bbwe";

LaunchUriResult result = await Launcher.LaunchUriForResultsAsync(uri, options);

此代码正在打开Microsoft Edge浏览器,但它没有显示弹出消息,而是在使用IsSuccess为true的NavigationCompleted方法中获得回调。此外,在回调之后,浏览器立即消失,这使我无法确认付款以继续进行交易。

另外,我收到的消息是"没有看到安全的paypal浏览器?我们将帮助您重新启动Windows以完成购买"使用继续按钮但是UWP应用程序中的继续按钮没有响应。当我在我的网站上收到相同的消息时,“继续”按钮会在前面显示弹出式浏览器,供用户响应。

我想知道是否有更好的方法从UWP应用程序打开浏览器并在浏览器事务成功后获得确认?

提前谢谢

1 个答案:

答案 0 :(得分:1)

我认为您在UWP应用中与Paypal支付网关集成了一个错误的方向。存在安全问题,无法使用您的方法集成Paypal,这是一个案例,您可以查看Why is PayPal not working inside a WinRT WebView control

经过一番研究后,我发现目前没有正式的SDK用于将Paypal集成到UWP应用程序中,即使有一个,也应该供受信任的客户使用(例如商家控制的服务器)和不适合不受信任的客户使用(例如,在不受商家控制的机器上运行的任何东西)。

现在建议您从应用中打开网络浏览器以通过Braintree v.zero完成交易,您还可以查看官方Paypal Developer Experience