HarmonyOS 鸿蒙Next Web组件的webPageSnapshot网页长截屏API使用报错,报错日志:ErrorCode: undefined, Message: is not callable

发布于 1周前 作者 gougou168 来自 鸿蒙OS

HarmonyOS 鸿蒙Next Web组件的webPageSnapshot网页长截屏API使用报错,报错日志:ErrorCode: undefined, Message: is not callable

Web组件,webPageSnapshot这个API用着报错,这是网页长截图、网页快照、获取网页全量绘制结果的API。希望大佬帮忙解决一下。开发工具版本号是:Build Version: 5.0.3.403, built on June 20, 2024

报错日志:ErrorCode: undefined,  Message: is not callable

API官网文档地址:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-webview-V5

完整代码案例如下:

//TODO 网页快照、网页长截图、网页全量绘制(API12)
// 文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-webview-V5
import { webview } from ‘@kit.ArkWeb’;
import { BusinessError } from ‘@kit.BasicServicesKit’;
import { CXNavView } from ‘…/…/common/CXNav/CXNavView’;
@Entry
@Component
struct webPageSnapshotPage {
controller: webview.WebviewController = new webview.WebviewController();
aboutToAppear(): void {
try {
// 设置开启网页全量绘制能力。仅在web初始化时设置。
webview.WebviewController.enableWholeWebPageDrawing();
} catch (error) {
console.error(enableWholeWebPageDrawing:ErrorCode: ${(error as BusinessError).code}, Message: ${(error as BusinessError).message});
// ErrorCode: undefined, Message: is not callable
}
}
build() {
Column() {
CXNavView()
Button(‘网页长截图API12’)
.onClick(() => {
try {
// snapshot的id。
// web绘制的尺寸,最多支持16000px * 16000px, 长度单位支持px、vp、%,需保持不同参数传入长度单位一致, 默认单位vp,超过规格时返回最大规格。(示例:width:‘100px’, height:‘200px’。或者 width:‘20%’, height’30%’。只写数字时单位为vp。)
this.controller.webPageSnapshot({ id: “1234”, size: { width: 100, height: 100 } }, (error, result) => {
if (error) {
console.error(webPageSnapshot:ErrorCode: ${(error as BusinessError).code}, Message: ${(error as BusinessError).message});
return;
}
if (result) {
console.info(return value is:${result});
//开发者可以根据需要处理返回结果
// 全量绘制结果image.pixelMap格式
let imagePixelMap = result.imagePixelMap
}
});
} catch (error) {
console.error(webPageSnapshot:ErrorCode: ${(error as BusinessError).code}, Message: ${(error as BusinessError).message});
}
})
Web({ src: ‘www.example.com’, controller: this.controller })
}
}
}


截图如下:

cke_7414.jpeg

cke_7830.jpeg

3 回复
全量绘制应该是 5.0.3.500 所对应 beta2 版本的能力,也就是 7 月 20 号发布的版本。5.0.3.403 对应版本是 beta1,不支持全量绘制。

原来如此,多谢大佬。

针对HarmonyOS鸿蒙Next Web组件中webPageSnapshot网页长截屏API报错的问题,首先确认你的API调用方式是否正确。webPageSnapshot通常需要按照其文档说明正确初始化并调用。报错信息“ErrorCode: undefined, Message: is not callable”通常意味着你尝试调用的对象不是一个函数或者方法。

检查以下几点:

  1. 确保你的鸿蒙SDK版本支持该API。
  2. 查看API调用的上下文是否正确,例如是否在合适的生命周期内调用。
  3. 检查API的引用路径或命名空间是否正确无误。

如果问题依旧没法解决请加我微信,我的微信是itying888。

回到顶部