diff --git a/cool/hooks/page.ts b/cool/hooks/page.ts index 7256dbc..c2a5eb4 100644 --- a/cool/hooks/page.ts +++ b/cool/hooks/page.ts @@ -93,37 +93,6 @@ class Page { return h; } - - /** - * 获取视图高度 - * @returns 视图高度 - */ - getViewHeight() { - // #ifndef APP - return uni.getWindowInfo().windowHeight; - // #endif - - // #ifdef APP - const { screenHeight } = uni.getWindowInfo(); - - let h = screenHeight; - - if (!this.hasCustomTopbar()) { - h -= 44 + this.getSafeAreaHeight("top"); - } - - return h; - // #endif - } - - /** - * 获取视图宽度 - * @returns 视图宽度 - */ - getViewWidth() { - const { screenWidth } = uni.getWindowInfo(); - return screenWidth; - } } export const page = new Page(); diff --git a/cool/utils/file.ts b/cool/utils/file.ts index 59fe417..f4cbe18 100644 --- a/cool/utils/file.ts +++ b/cool/utils/file.ts @@ -1,20 +1,14 @@ import { base64ToBlob, uuid } from "./comm"; -export type CanvasToPngOptions = { - canvasId: string; - proxy?: ComponentPublicInstance; - canvasRef: UniElement; -}; - /** * 将canvas转换为png图片 * @param options 转换参数 * @returns 图片路径 */ -export function canvasToPng(options: CanvasToPngOptions): Promise { +export function canvasToPng(canvasRef: UniElement): Promise { return new Promise((resolve) => { // #ifdef APP - options.canvasRef.parentElement!.takeSnapshot({ + canvasRef.parentElement!.takeSnapshot({ success(res) { resolve(res.tempFilePath); }, @@ -28,9 +22,7 @@ export function canvasToPng(options: CanvasToPngOptions): Promise { // #ifdef H5 const url = URL.createObjectURL( base64ToBlob( - (options.canvasRef as unknown as HTMLCanvasElement) - .querySelector("canvas") - ?.toDataURL("image/png", 1) ?? "" + (canvasRef as unknown as HTMLCanvasElement)?.toDataURL("image/png", 1) ?? "" ) ); @@ -39,34 +31,35 @@ export function canvasToPng(options: CanvasToPngOptions): Promise { // #ifdef MP uni.createCanvasContextAsync({ - id: options.canvasId, - component: options.proxy, + id: canvasRef.id, + component: canvasRef.$vm, success(context) { // 获取2D绘图上下文 const ctx = context.getContext("2d")!; + + // 获取canvas对象 const canvas = ctx.canvas; // 将canvas转换为base64格式的PNG图片数据 const data = canvas.toDataURL("image/png", 1); - // 获取base64数据部分(去掉data:image/png;base64,前缀) - const bdataBase64 = data.split(",")[1]; // 获取文件系统管理器 const fileMg = uni.getFileSystemManager(); + // 生成临时文件路径 // @ts-ignore const filepath = `${wx.env.USER_DATA_PATH}/${uuid()}.png`; + // 将base64数据写入文件 fileMg.writeFile({ filePath: filepath, - data: bdataBase64, + data: data.split(",")[1], encoding: "base64", success() { - // 写入成功返回文件路径 resolve(filepath); }, - fail() { - // 写入失败返回空字符串 + fail(err) { + console.error(err); resolve(""); } }); diff --git a/package.json b/package.json index 79c6535..ec86fc6 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cool-unix", - "version": "8.0.4", + "version": "8.0.5", "license": "MIT", "scripts": { "build-ui": "node ./uni_modules/cool-ui/scripts/generate-types.js", diff --git a/pages/demo/other/sign.uvue b/pages/demo/other/sign.uvue index 52f15cf..ac7e8e5 100644 --- a/pages/demo/other/sign.uvue +++ b/pages/demo/other/sign.uvue @@ -3,7 +3,6 @@ @@ -29,7 +28,7 @@