npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@cordova-ohos/cordova-plugin-telerik-imagepicker

v2.3.7

Published

Cordova Telerik Image Picker Plugin

Readme

cordova-plugin-telerik-imagepicker

zh-CN en

本项目基于 [email protected] 开发,本文档重点阐述其在 OpenHarmony(OHOS)系统中的具体应用。

简介

cordova-plugin-telerik-imagepicker 是一款功能强大的 Cordova 图片选择插件,支持从设备相册中批量选择图片、预览图片、限制选择数量及尺寸筛选等功能,适配 Android、iOS 和 OHOS 三平台,为混合式移动应用提供高效的图片选择解决方案。本文重点说明该插件在 OHOS 系统中的使用方法、配置及注意事项。

功能特性

  • 批量选择:支持一次性选择多张图片,可自定义最大选择数量,满足多图上传等场景需求

  • 图片预览:选择前可预览图片缩略图及原图,直观查看图片效果,提升用户操作体验

  • 尺寸筛选:可根据图片宽度、高度筛选符合要求的图片,避免选择不符合应用需求的图片

  • 格式支持:兼容 JPG、PNG 等主流图片格式,适配不同拍摄场景和图片来源

  • 权限管理:自动处理相册访问权限申请,提供权限拒绝回调,便于开发者处理权限异常场景

  • 丰富元数据:选择图片后返回完整元数据,包括图片路径、尺寸、大小等,满足后续业务处理需求

  • 多平台适配:完美适配 Android、iOS、OHOS 三平台,无需额外修改代码即可跨平台使用

  • 异步接口:所有 API 均为异步执行,通过回调函数处理结果,不阻塞应用主线程

支持平台

  • Android(API 级别 14 及以上)

  • iOS(iOS 9.0 及以上)

  • OHOS(5.0 及以上)

前置准备

在集成插件前,确保开发环境已满足以下基础条件,无需额外在第三方平台注册配置:

  • 已安装 Node.js(v14.0.0 及以上)和 npm(v6.0.0 及以上)

  • 已安装 HCordova CLI(10.0.0 及以上),用于插件的安装、卸载和管理

  • 已创建 Cordova 项目(若未创建,可通过 cordova create imagePickerDemo com.example.imagepicker ImagePickerDemo 命令创建)

  • 确保目标设备(或模拟器)已开启相册权限,便于插件正常访问设备相册

下载安装

通过 hcordova CLI 即可快速安装插件,支持基础稳定版安装、指定版本安装,也可从 GitCode 仓库获取最新开发版,安装流程简洁高效。

前提条件

安装插件前,需先安装 HCordova CLI,执行以下命令安装:

npm install -g hcordova

从 npm 安装(基础稳定版)

# 安装最新稳定版(全平台)
hcordova plugin add cordova-plugin-telerik-imagepicker

安装指定版本

适用于需要固定插件版本的场景,可指定版本号并仅安装到 OHOS 平台:

# 安装 1.0.0 版本(指定 OHOS 平台)
hcordova plugin add [email protected] --platform ohos

从 GitCode 仓库安装(开发版)

适用于需要体验最新功能的开发者,仅为 OHOS 平台安装开发版插件:

# 仅支持 OHOS 平台
hcordova plugin add https://gitcode.com/CPF-Cordova/cordova-plugin-telerik-imagepicker.git --platform ohos

# 指定标签/分支安装
hcordova plugin add https://gitcode.com/CPF-Cordova/cordova-plugin-telerik-imagepicker.git@develop --platform ohos

离线安装(本地包)

适用于无网络环境,先下载插件包到本地,再执行离线安装:

# 下载插件包到本地(示例路径:~/Downloads/cordova-plugin-telerik-imagepicker)
# 执行离线安装
hcordova plugin add ~/Downloads/cordova-plugin-telerik-imagepicker  --platform ohos

安装后验证

安装完成后,可通过以下命令验证插件是否成功添加到项目中:

# 查看已安装的插件列表,若包含本插件 ID 则表示插件已成功安装
hcordova plugin list

卸载

如需移除插件,进入项目根目录执行以下命令,卸载后建议重新构建项目以清理残留文件:

# 全平台卸载
hcordova plugin remove cordova-plugin-telerik-imagepicker

# 指定 OHOS 卸载
hcordova plugin remove cordova-plugin-telerik-imagepicker --platform ohos

OHOS 配置

在 OHOS 使用安全相机,无需配置相机访问权限

约束与限制

  • 依赖插件:无强制依赖,可直接集成到 Cordova 项目中使用

  • 图片限制:仅支持 JPG、PNG 等主流图片格式,GIF、WebP 可能无法正常预览和选择

  • API 调用限制:所有 API 均为异步执行,需通过成功回调和错误回调处理结果,不可同步调用

  • 选择数量限制:最大选择数量可自定义,但需结合设备性能和内存情况合理设置,避免选择过多图片导致应用卡顿

  • OHOS 特殊限制:OHOS 5.0 及以上版本支持,低于该版本的设备可能无法正常使用插件功能

兼容性

支持:

| 项目 | 版本/信息 | |-----|--------| | SDK | API12+ | | IDE | DevEco Studio: 5.0+ | | ROM | 5.1+ | | Emulator | OpenHarmony 6.0+ |

在以下版本中已测试通过:

| 项目 | 版本/信息 | |-----|--------| | @cordova-ohos/ohos | 14.0.1-ohos-14.0.1 | | SDK | 5.0.0(12) | | IDE | DevEco Studio: 6.0.13.200 | | ROM | 5.1.0.120 SP3 | | Emulator | OpenHarmony 6.0.1(21) |

使用示例

插件所有方法均在全局对象 window.imagePicker 下可用,所有方法均为异步执行,通过成功回调和错误回调处理结果。以下为各核心功能的完整使用示例,可直接复制到项目中使用。

1. 基础用法:批量选择图片并预览

选择多张图片(最多 9 张),筛选宽度不小于 800px 的图片,并在页面中预览选择的图片:

// 等待 Cordova 加载完成
document.addEventListener("deviceready", () => {
    // 选择多张照片
    window.imagePicker.getPictures(
        function (results) {
            // 成功回调:results 为选择的图片路径数组
            if (results.length <= 0) {
                console.log("未选择任何图片");
                return;
            }
            // 拼接图片标签,用于页面预览
            var src = "";
            for (var i = 0; i < results.length; i++) {
                // OHOS 平台图片路径需拼接 localhost 前缀
                src += "<img src='https://localhost" + results[i] + "' width='100%' />";
            }
            // 将图片渲染到页面指定元素
            document.getElementById("imgInfo").innerHTML = src;
        }, 
        function (error) {
            console.log('图片选择失败:', error);
        }, 
        {
            maximumImagesCount: 9, // 最大选择数量
            width: 800 // 图片最小宽度筛选(像素)
        }
    );
}, false);

2. 自定义配置选择图片

自定义最大选择数量、图片尺寸筛选,同时获取图片元数据:

document.addEventListener("deviceready", () => {
    window.imagePicker.getPictures(
        function (results) {
            if (results.length <= 0) {
                return;
            }
            // 遍历图片路径,获取图片元数据(需结合额外逻辑获取尺寸、大小)
            results.forEach((imagePath, index) => {
                console.log(`第${index+1}张图片路径:`, imagePath);
                // 可通过图片路径进一步获取图片尺寸、大小等信息
                var img = new Image();
                img.src = "https://localhost" + imagePath;
                img.onload = function() {
                    console.log(`第${index+1}张图片尺寸:${this.width}x${this.height}`);
                };
            });
        }, 
        function (error) {
            console.error('Error: ' + error);
        }, 
        {
            maximumImagesCount: 5, // 自定义最大选择数量为 5 张
            width: 600, // 最小宽度 600px
            height: 400, // 最小高度 400px
            quality: 80 // 图片质量(0-100),仅对压缩后的图片有效
        }
    );
}, false);

3. 处理权限拒绝场景

当用户拒绝相册权限时,给出友好提示并引导用户开启权限:

document.addEventListener("deviceready", () => {
    window.imagePicker.getPictures(
        function (results) {
            if (results.length > 0) {
                var src = "";
                for (var i = 0; i < results.length; i++) {
                    src += "<img src='https://localhost" + results[i] + "' width='100%' />";
                }
                document.getElementById("imgInfo").innerHTML = src;
            }
        }, 
        function (error) {
            // 处理权限拒绝错误
            if (error.includes("permission")) {
                alert("请开启相册权限,否则无法选择图片!");
                // 可引导用户跳转到权限设置页面(OHOS 平台需结合原生 API 实现)
            } else {
                console.log('图片选择失败:', error);
            }
        }, 
        {
            maximumImagesCount: 3,
            width: 500
        }
    );
}, false);

使用说明

以下为插件使用的核心说明,包括 API 详解、参数说明、注意事项等,帮助开发者快速上手并避免异常。

1. 核心 API 说明

插件所有方法均挂载在全局对象 window.imagePicker 下,无需额外引入,需在 Cordova 加载完成后(deviceready 事件触发后)调用,否则会出现 API 未定义、调用失败等异常。所有方法均为异步执行,通过成功回调和错误回调处理结果。

1.1 getPictures:批量选择图片

功能:打开设备相册,允许用户批量选择图片,支持筛选图片尺寸、限制选择数量,选择完成后返回图片路径数组。

语法:

window.imagePicker.getPictures(successCallback, errorCallback, options)

1.2 回调函数说明

  • successCallback(必传):选择成功时触发的回调函数,参数 results 为图片路径数组,每个元素为选中图片的本地路径(OHOS 平台需拼接 https://localhost 前缀才能正常显示)。

  • errorCallback(必传):选择失败时触发的回调函数,参数 error 为错误信息字符串,常见错误包括权限拒绝、相册访问失败、无图片可选择等。

2. 核心配置参数(options)说明

| 参数名称 | 类型 | 说明 | 默认值 | |---|---|---|---| | maximumImagesCount | 数字 | 最大选择图片数量,最小值为 1,最大值根据设备性能可自定义 | 1 | | width | 数字 | 图片最小宽度(像素),筛选宽度不小于该值的图片;0 表示不筛选宽度 | 0 | | height | 数字 | 图片最小高度(像素),筛选高度不小于该值的图片;0 表示不筛选高度 | 0 | | quality | 数字 | 图片质量(0-100),值越高图片越清晰,文件体积越大;仅对需要压缩的图片有效 | 80 | | allowEdit | 布尔值 | 是否允许编辑图片(如裁剪、旋转),部分平台支持 | false |

3. 常见问题(FAQ)

Q1: 调用 getPictures 方法无反应怎么办?

  1. 检查 API 调用时机:确保在 deviceready 事件触发后调用该方法,否则 window.imagePicker 可能未定义

  2. 检查插件安装:执行 hcordova plugin list 确认插件已成功安装

  3. 检查权限配置:OHOS 平台需在配置文件中声明相册读写权限,确保权限配置正确

  4. 重新构建项目:执行 hcordova build ohos,确保插件资源和配置正确加载

Q2: 选择图片后无法显示怎么办?

  1. 检查图片路径:OHOS 平台图片路径需拼接 https://localhost 前缀,例如 https://localhost${imagePath}

  2. 检查图片格式:确保选择的图片为 JPG、PNG 等主流格式,避免选择不支持的格式

  3. 检查设备权限:确认应用已获取相册访问权限,若未获取,需重新申请权限

Q3: 权限拒绝后如何处理?

在 errorCallback 中判断错误信息是否包含“permission”,若为权限拒绝,可通过弹窗提示用户开启权限,并引导用户跳转到设备权限设置页面(OHOS 平台需结合原生 API 实现跳转)。

4. 注意事项

  • API 调用时机:所有 JavaScript API 必须在 deviceready 事件触发后调用,否则会出现 window.imagePicker 未定义、调用失败等异常。

  • 图片路径处理:OHOS 平台返回的图片本地路径需拼接 https://localhost 前缀,才能在页面中正常显示图片。

  • 权限处理:需在错误回调中处理权限拒绝场景,给出友好提示,提升用户体验。

  • 选择数量控制:根据设备性能合理设置 maximumImagesCount,避免选择过多图片导致应用卡顿或内存溢出。

  • 图片筛选:width 和 height 参数为最小尺寸筛选,仅筛选尺寸不小于该值的图片,若需筛选最大尺寸,需在选择后自行处理。

  • 兼容性提示:确保 OHOS 设备版本为 5.0 及以上,HCordova CLI 版本为 10.0.0 及以上,否则可能出现功能异常。

目录结构

cordova-plugin-telerik-imagepicker   # [根目录] 图片选择器插件项目根目录
├── src                              # [源码目录] 存放原生平台代码
│   └── main                         # [主目录] 主代码目录
│       └── cpp                      # [C++ 目录] C++ 原生代码目录
│           └── ImagePicker          # [C++ 模块] 图片选择 C++ 模块文件夹
│               ├── ImagePicker.cpp  # [C++ 实现] C++ 源文件,实现图片选择/拍照的底层逻辑
│               └── ImagePicker.h    # [C++ 声明] C++ 头文件,定义图片选择接口
├── www                              # [前端目录] 存放供 Web 端调用的 JS 接口文件
│   └── imagepicker.js               # [JS 文件] 暴露给 Web 端的 JS 接口,用于调用原生图片选择功能
├── .gitignore                       # [配置] Git 版本控制忽略文件配置
├── LICENSE                          # [文本] 开源许可证文件
├── OAT.xml                          # [配置] 门禁配置文件
├── package.json                     # [配置] 项目依赖和元数据配置文件
├── plugin.xml                       # [配置] Cordova 插件配置文件,定义插件结构和映射
└── README.md                        # [文档] 项目说明文档,通常包含安装和使用指南

贡献代码

使用过程中发现任何问题都可以提 Issue,当然也非常欢迎发 PR 共建。

许可证

本插件基于 Apache License 2.0 开源,详见 LICENSE 文件。

官方资源