一、前言:
基于IE浏览器二次开发海康威视后台管理,在新电脑上配置服务的时候经常莫名其妙的报错:对象不支持"HWP_GetLocalConfig"属性或方法,然后接着报错Unhandled promise rejection TypeError:对象不支持"HWP_SubmitHttpRequest"属性或方法,
WebComponents.exe 插件也安装了,用海康自带的后台管理也能正常登录预览视频(注:偶尔会自带后台管理会提示安装插件,但是安装后 自己开发的发版本还是无法成功预览);
归根结底问题还是出在 当前操作系统版本(32位 64位)+ JS插件webvideoctrl.js + 海康设备版本 + IE浏览器版本 各种版本匹配问题;
二、问题分析:
系统环境:Win10 64位操作系统 + IE11 + WebComponent.exe(不知道装了一个什么版本 但是海康自带后台正常使用)+ 基于海康Web视频插件webvideoctrl.js 二次开发(vue)
问题原因:未安装WebComponent(64位版本).exe
详细问题:调试海康 3200行 的webvideoctrl.js JS插件代码才发现,问题出在这两个地方
U = function() {
if (!re() && null !== c) {
var e = c.HWP_GetLocalConfig(); //调用插件获取本地什么配置内容************
C = f.loadXML(e)
}
},
else {
var i = this.getHttpMethod(this.options.type);
if (this.options.async) {
//和这一局连锁反应问题 上面的 "c"对象没获取到内容************
var a = c.HWP_SubmitHttpRequest(i, this.options.url, this.options.auth, this.options.data, this.options.timeout); - 1 != a && (t = {
iRequestID: a,
funSuccessCallback: this.options.success,
funErrorCallback: this.options.error
}, this.m_httpRequestSet.push(t))
}
三、解决方案:
安装64位的 WebComponentsKit(Win64).exe 视频插件即可,就是这么简单;
如果没有插件可以走这里去下载,或者加微信找我要(15249207822)
如果插件加载环节始终有问题,那就尝试把几个版本插件都装一遍,基本上能解决类似问题;
四、总结:
问题看起来很简单,却花了我五六个小时才找到问题原因,现在也只知道HWP_GetLocalConfig调了WebComponent.exe插件 但是还是不知道这Y到底是干什么的,貌似也没必要知道;
最近在做一个监控项目: