[英]Flutter webview PayPal intergation error?
我想像这样集成 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)] "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) [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 )
正如文档所解释的那样,无法从 webviews 中使用 PayPal。
不要使用 WebView 在您的应用程序中显示 PayPal 网页
您的应用程序不得使用 WebView 或类似的自定义浏览器机制来显示 PayPal 网页。 相反,使用适当的 PayPal SDK 来管理 PayPal 体验或在系统浏览器或批准的浏览器查看机制(例如 iOS 上的 Safari View Controller 或 Android 上的 Chrome 自定义选项卡)中启动 PayPal 网页。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.