From e9ef5c1cc3bb04cb7cb6179c2c7de7a499175623 Mon Sep 17 00:00:00 2001 From: qiang Date: Mon, 12 Oct 2020 17:57:31 +0800 Subject: [PATCH] =?UTF-8?q?Revert=20"fix:=20=E5=9B=9E=E9=80=80=E5=AE=89?= =?UTF-8?q?=E5=8D=93=20measureText=20=E5=8A=9F=E8=83=BD"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit 158058f21c8df3161fa1fcdbab80f61f83df8a50. --- src/core/service/api/context/canvas.js | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/core/service/api/context/canvas.js b/src/core/service/api/context/canvas.js index c2b2f5490..9151c2069 100644 --- a/src/core/service/api/context/canvas.js +++ b/src/core/service/api/context/canvas.js @@ -333,9 +333,18 @@ export class CanvasContext { let width = 0 if (__PLATFORM__ === 'h5') { width = measureText(text, font) - } else if (plus.os.name.toLowerCase() === 'ios') { + } else { const webview = plus.webview.all().find(webview => webview.getURL().endsWith('www/__uniappview.html')) - width = Number(webview.evalJSSync(`(${measureText.toString()})(${JSON.stringify(text)},${JSON.stringify(font)})`)) + if (webview) { + for (let index = 0; index < 5; index++) { + width = Number(webview.evalJSSync(`(${measureText.toString()})(${JSON.stringify(text)},${JSON.stringify(font)})`)) + // 安卓部分情况会计算失败,进行重试 + if (!isNaN(width)) { + width = 0 + break + } + } + } } return new TextMetrics(width) } -- GitLab