uni-app 开发源生插件实现接入海康监控 插件工程运行正常 打成插件包就无法使用

发布于 1周前 作者 gougou168 来自 Uni-App

uni-app 开发源生插件实现接入海康监控 插件工程运行正常 打成插件包就无法使用
接入海康的SDK,实现监控的查看,在插件工程里可以正常打开摄像头看到实时画面,但是打包成UNI插件之后放入UNI工程就播放不了了。

这是package配置内容:

{
  "name": "HKMonitorPlugin",
  "id": "HKMonitorPlugin",
  "version": "1.0",
  "description": "JWWD-HKMonitor",
  "_dp_type": "nativeplugin",
  "_dp_nativeplugin": {
    "ios": {
      "plugins": [
        {
          "type": "module",
          "name": "HKMonitorPlugin",
          "class": "iOSHKMonitor"
        }
      ],
      "integrateType": "framework",
      "frameworks": [
        "hatomplayer_core.framework"
      ],
      "embedFrameworks": [
        "hatomplayer_core.framework"
      ],
      "assets": [
        ""
      ],
      "deploymentTarget": "12.0",
      "validArchitectures": [
        "arm64"
      ]
    }
  }
}
项目创建方式 插件工程
版本号 1.0

1 回复

在开发uni-app原生插件并接入海康监控时,遇到插件工程运行正常但打包成插件包后无法使用的问题,通常是由于环境差异、权限配置或资源打包不完整导致的。以下是一个简化的示例代码和步骤,用于指导如何确保插件在打包后仍能正常工作。

1. 确认插件配置

首先,确保manifest.json中插件配置正确,特别是权限和依赖库部分。例如:

{
  "mp-weixin": { // 示例平台配置,根据实际平台调整
    "setting": {
      "requestDomain": [
        "your_hikvision_domain" // 海康监控服务器域名
      ],
      "permission": {
        "scope.userLocation": {
          "desc": "你的位置信息将用于海康监控定位"
        },
        "camera": {
          "desc": "访问摄像头用于海康监控"
        }
      }
    }
  },
  "plugins": {
    "your-plugin-id": { // 插件ID
      "version": "1.0.0",
      "provider": "your-provider-name",
      "description": "海康监控插件"
    }
  }
}

2. 插件代码示例

在插件代码中,确保所有资源文件(如so库、配置文件等)都被正确引用。以下是一个简单的插件接口示例,用于初始化海康监控SDK:

// 插件入口文件 plugin.js
module.exports = {
  initialize: function(options) {
    // 加载海康SDK(假设已打包在插件中)
    const HikvisionSDK = require('./libs/HikvisionSDK');
    
    // 初始化SDK
    HikvisionSDK.init(options.serverUrl, options.username, options.password);
    
    return {
      startMonitoring: function() {
        HikvisionSDK.startMonitoring();
      },
      stopMonitoring: function() {
        HikvisionSDK.stopMonitoring();
      }
    };
  }
};

3. 检查资源打包

确保所有必要的资源文件(如海康SDK的.so文件、配置文件等)在打包插件时被正确包含。可以在webpack.config.jsvue.config.js中配置资源复制规则。

// webpack.config.js 示例
module.exports = {
  // ...其他配置
  configureWebpack: {
    plugins: [
      new CopyWebpackPlugin({
        patterns: [
          { from: 'path/to/hikvision/sdk/*.so', to: 'dist/libs/HikvisionSDK/' },
          // 其他资源文件复制规则
        ],
      }),
    ],
  },
};

4. 调试与测试

  • 使用真机测试插件包,查看是否有权限或资源加载错误。
  • 检查控制台日志,定位问题所在。
  • 确保所有依赖库与SDK版本兼容,并符合目标平台的要求。

通过上述步骤,通常可以解决uni-app原生插件在打包后无法使用的问题。如果问题依旧存在,建议检查海康SDK的文档,确认是否有特定的打包或初始化要求。

回到顶部