在 Electron 应用中,通过 “script ”标签引入百度地图在线 SDK 时报错,或者vue、react等其他在线资源报错时以下方法都适用。
问题现象:electron中使用百度地图的JavaScript api 脚本,得到对象BMapGL,调用getCurrentPosition会报错:Uncaught ReferenceError: md5 is not defined
经过多次验证与测试,找到了问题原因:是由于electron环境中创建的窗口设置了webPreferences中的nodeIntegration: true,使得浏览器环境集成了nodejs,影响了getscript的执行。关闭它就可以了。但是一般情况下这个开关不能关闭,项目代码中渲染进程严重依赖于nodejs部分模块,在index.html加上以下两句代码即可以解决
<html>
<script>if (typeof module === 'object') {window.module = module; module = undefined;}</script> //开头
<script type="text/javascript"
src="https://api.map.baidu.com/api?v=1.0&&type=webgl&ak=jdshiwhfdio54wsdwqa">
</script>
............................//这里写你要引入的jQuery/Vuejs/angularjs包等等..
............................//你的代码
<script src=""></script> //自己的外部js代码
<script>if (window.module) module = window.module;</script> //结尾
</html>
主要就是开头结尾两句话,大神操作,具体解决的原因不是很了解,但确实不加就会报错,加了就好用了
原文档地址:https://blog.csdn.net/xxhdcblogzh888/article/details/78106347