uniapp开发app使用html2canvas出现的ios兼容问题

uniapp开发app使用html2canvas出现的ios兼容问题

记录一下app分享功能

uniapp没办法直接操作dom元素,之前小程序用的wx的插件在app中无法使用

百度到了 uniapp app端使用html2canvas和renderjs实现生成海报图的方法 下面有链接


// 接收renderjs发回的数据

链接:[link] (https://blog.csdn.net/MrHao_/article/details/109291032?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522161493234916780271580344%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=161493234916780271580344&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduend~default-3-109291032.first_rank_v2_pc_rank_v29&utm_term=uniapp%E4%BD%BF%E7%94%A8html2canvas)

到这里正常安卓都可以使用,但是到ios就挂了

下面是解决iOS分享不显示的问题

回退版本到1.0.0.4 (这个你们百度一下很多)
试了很久不行 然后又百度了半天找到了下面的方法

1、更换html2canvas

更换下面链接的文件应该就可以了

链接:[link] (https://github.com/FEA-Dven/html2Canvas).

2、如果不行的话

更改html2cavas里面 两千五百多行代码(自己找一下)

case 2:
                            Logger.getInstance(this.id).debug("Added image " + key.substring(0, 256));
                            return [4 /*yield*/, new Promise(function (resolve, reject) {
                                var img = new Image();
																img.crossOrigin = '*';
                                img.onload = function () { return resolve(img); };
                                img.onerror = reject;
                                //ios safari 10.3 taints canvas with data urls unless crossOrigin is set to anonymous
                                if (isInlineBase64Image(src) || useCORS) {
                                    img.crossOrigin = '*';
                                }
                                img.src = src+'?t='+new Date().getTime();
                                if (img.complete === true) {
                                    // Inline XML images may fail to parse, throwing an Error later on
                                    setTimeout(function () { return resolve(img); }, 500);
                                }
                                if (_this._options.imageTimeout > 0) {
                                    setTimeout(function () { return reject("Timed out (" + _this._options.imageTimeout + "ms) loading image"); }, _this._options.imageTimeout);
                                }
                            })];

有什么好方法可以在下面多交流

你可能感兴趣的:(html2canvas,vue.js)