如何解决Flutter webview PayPal intergation 错误?
我想像这样集成 PayPal 按钮: https://developer.paypal.com/demo/checkout/#/pattern/client
我将此示例代码放在一个 HTML 文件 (assets/paypal.html
) 中,并从资产中读取到 WebView:
@override
Widget build(BuildContext context) {
return Scaffold(
body: WebView(
javascriptMode: JavascriptMode.unrestricted,onWebViewCreated: (WebViewController webViewController) {
_controller = webViewController;
_loadHtml();
},),);
}
void _loadHtml() async {
String fileText = await rootBundle.loadString('assets/paypal.html');
_controller!.loadUrl(Uri.dataFromString(fileText,mimeType: 'text/html',encoding: Encoding.getByName('utf-8')).toString());
}
但我收到此错误(未捕获的错误:按钮的引导程序错误):
[INFO:CONSOLE(2)] "insertPPTM [object Object]",source: https://www.paypal.com/sdk/js?client-id=test¤cy=USD (2) [INFO:CONSOLE(2)] "Uncaught Error: Bootstrap Error for buttons:
Can not read window host
Error: Can not read window host
at j (https://www.paypal.com/sdk/js?client-id=test¤cy=USD:2:18528)
at B (https://www.paypal.com/sdk/js?client-id=test¤cy=USD:2:18625)
at zt (https://www.paypal.com/sdk/js?client-id=test¤cy=USD:2:58764)
at Cu (https://www.paypal.com/sdk/js?client-id=test¤cy=USD:2:288789)
at Object.__get__ (https://www.paypal.com/sdk/js?client-id=test¤cy=USD:2:288874)
at o (https://www.paypal.com/sdk/js?client-id=test¤cy=USD:2:291801)
at https://www.paypal.com/sdk/js?client-id=test¤cy=USD:2:291984
at Module.<anonymous> (https://www.paypal.com/sdk/js?client-id=test¤cy=USD:2:292214)
at t (https://www.paypal.com/sdk/js?client-id=test¤cy=USD:2:157)
at https://www.paypal.com/sdk/js?client-id=test¤cy=USD:2:941",source: https://www.paypal.com/sdk/js?client-id=test¤cy=USD (2) [INFO:CONSOLE(2)] "Uncaught Error: Bootstrap Error for common:
Can not read window host
Error: Can not read window host
at j (https://www.paypal.com/sdk/js?client-id=test¤cy=USD:2:18528)
at B (https://www.paypal.com/sdk/js?client-id=test¤cy=USD:2:18625)
at zt (https://www.paypal.com/sdk/js?client-id=test¤cy=USD:2:58764)
at Iu (https://www.paypal.com/sdk/js?client-id=test¤cy=USD:2:289405)
at Object.__get__ (https://www.paypal.com/sdk/js?client-id=test¤cy=USD:2:289453)
at o (https://www.paypal.com/sdk/js?client-id=test¤cy=USD:2:291801)
at https://www.paypal.com/sdk/js?client-id=test¤cy=USD:2:291984
at Module.<anonymous> (https://www.paypal.com/sdk/js?client-id=test¤cy=USD:2:292214)
at t (https://www.paypal.com/sdk/js?client-id=test¤cy=USD:2:157)
at https://www.paypal.com/sdk/js?client-id=test¤cy=USD:2:941",source: https://www.paypal.com/sdk/js?client-id=test¤cy=USD (2) [INFO:CONSOLE(2)] "unhandled_error [object Object]",source: https://www.paypal.com/sdk/js?client-id=test¤cy=USD (2) [INFO:CONSOLE(2)] "Uncaught Error: Can not read window host",source: https://www.paypal.com/sdk/js?client-id=test¤cy=USD (2)
我尝试了 2 个 flutter WebView 插件,同样的错误(webview_flutter 2.0.10,flutter_webview_plugin 0.4.0)
解决方法
无法从网络视图中使用 PayPal,因为 documentation explains。
请勿使用 WebView 在您的网页中显示 PayPal 网页 申请
您的应用程序不得使用 WebView 或类似的自定义浏览器 显示 PayPal 网页的机制。相反,使用适当的 用于管理 PayPal 体验或启动 PayPal 网站的 PayPal SDK 系统浏览器中的页面或经批准的浏览器查看机制 例如 iOS 上的 Safari View Controller 或 Chrome Custom Tabs on 安卓。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。