问题描述
我有一个如下所示的Freshdesk脚本,打开Webview时需要调用该脚本。
<script>
window.fwSettings={
'widget_id':XXXXXXX
};
!function(){if("function"!=typeof window.FreshworksWidget){var n=function(){n.q.push(arguments)};n.q=[],window.FreshworksWidget=n}}()
</script>
<script type='text/javascript' src='https://ind-widget.freshworks.com/widgets/XXXXXXX.js' async defer></script>
//... Imports
const String freshDeskPageScript = '''
<!DOCTYPE html><html>
<head>
<script>
window.fwSettings={
'widget_id':XXXXXXXX
};
!function(){if("function"!=typeof window.FreshworksWidget){var n=function(){n.q.push(arguments)};n.q=[],window.FreshworksWidget=n}}()
</script>
<script type='text/javascript' src='https://ind-widget.freshworks.com/widgets/XXXXXXXX.js' async defer></script>
</head>
</html>
''';
class FreshDesk extends StatefulWidget {
@override
_FreshDeskState createState() => _FreshDeskState();
}
class _FreshDeskState extends State<FreshDesk> {
WebViewController _controller;
@override
void initState() {
if (Platform.isAndroid) WebView.platform = SurfaceAndroidWebView();
super.initState();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Fresh Desk'),),body: WebView(
initialUrl: 'about:blank',javascriptMode: JavascriptMode.unrestricted,onWebViewCreated: (controller) async {
_controller = controller;
final String contentBase64 =
base64Encode(const Utf8Encoder().convert(freshDeskPageScript));
await controller.loadUrl('data:text/html;base64,$contentBase64');
},);
}
}
错误:-
I/chromium(11512): [INFO:CONSOLE(22)] "[object DOMException]",source: https://ind-widget.freshworks.com/widgetBase/widget.js (22)
I/chromium(11512): [INFO:CONSOLE(30)] "Uncaught SyntaxError: Failed to execute 'postMessage' on 'Window': Invalid target origin 'null' in a call to 'postMessage'.",source: https://ind-widget.freshworks.com/widgetBase/widget.js (30)
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)