我正在使用html canvas
与fabric.js
互动,并提供帮助
<canvas id="canvas" style="margin-top:8px; margin-left:8px" width="290px" height="250px"></canvas>
<script>
var canvas = new fabric.Canvas('canvas', {
preserveObjectStacking: true,
});
</script>
。
示例:
react-native-webview-bridge
要进行此互动,请使用canvas
,到目前为止,我对此实施没有任何问题。
现在,我的应用程序需要在 离线模式 中工作,我必须忍受的一件事就是<script src="https://code.jquery.com/jquery-2.2.4.min.js" integrity="sha256-xxxxx/xTY9gja0Dq3HiwQF8LaCRTXxZKRutelT44=" crossorigin="anonymous"></script>
<script src='https://cdnjs.cloudflare.com/ajax/libs/fabric.js/1.7.3/fabric.js'></script>
的功能。
虽然我在开始时的想法似乎很简单,但最终很复杂。
我的想法是将它使用的所有cdn复制到本地脚本并将它们作为路径加载。
起初它工作得很完美,但仅限于调试模式。当我在发布模式下测试时,它不起作用:(
CODE:
<script src="./Scripts/jquery-2.2.4.min.js" integrity="sha256-xxxxx/xTY9gja0Dq3HiwQF8LaCRTXxZKRutelT44=" crossorigin="anonymous"></script>
<script src='./Scripts/fabric.js'></script>
离线模式的代码:
Code for OFFLINE MODE:
https://cdnjs.cloudflare.com/ajax/libs/fabric.js/1.7.3/fabric.js
是留在线上和离线的
当我尝试将var text = new fabric.Text(props, {
fontFamily: 'Source Sans Pro',
fontSize: fontSize,
selectable: false,
fill: 'rgb(151,151,151)',
top: top,
left: left
});
text.type = "imagesSet";
canvas.add(text);
作为本地路径加载时,画布永远不会加载我尝试使用以下结构函数添加的文本。
PDTA:即使在线模式也无法正常工作。它只适用于我直接链接到cdn
cache manifest
问题是:
- 为什么它在调试中有效但在发布模式下无效?
- 我尝试做什么是否有意义?或者最终它是不可能的,因为fabric.js的cdn使用某些只能在在线模式下执行的脚本
提前感谢阅读,我们将不胜感激。
更新
使用render: (text, row) => <a> {text + row.ipsum} </a>
我可以解决问题,但只有当应用程序处于打开状态并进入离线模式时才能解决。
https://github.com/kangax/fabric.js/issues/2202
https://www.html5rocks.com/en/tutorials/appcache/beginner/
当应用程序关闭并在离线模式下打开时,我仍无法找到支持方式