当前位置: 首页 > news >正文

Cordova开发自定义插件的方法

Cordova开发自定义插件的方法

文章目录

  • Cordova开发自定义插件的方法
    • @[TOC](文章目录)
  • 一、自定义插件
  • 二、android下的自定义插件开发
    • (一)步骤
      • 1、建立cordova工程
      • 2、建立自定义插件
        • (1) 安装plugman
        • (2) 用plugman建立自定义插件Myplug
        • (3) 到Myplug目录,用plugman建立package.json文件
        • (4)在myPlug\src目录下,建立HelloPlugin.java
      • 3、自定义插件配置文件
        • (1)myPlug.js
        • (2)package.json
        • (3)plugin.xml
    • (二)APP工程中的调用

一、自定义插件

当Cordova 开发跨平台APP没有现成插件可用,或者现有插件无法满足需求时,需要开发自定义插件。
自定义插件针对不同的开发平台需要用原生开发语言完成开发。例如:android采用java,ios则采用object-c或swift。
以下以android平台下的自定义插件开发为例,说明开发基本方法和关键点。

二、android下的自定义插件开发

(一)步骤

1、建立cordova工程

cordova create myDefinePlug
cd myDefinePlug
cordova platform add android

2、建立自定义插件

进入cmd命令窗口,按如下顺序建立初始自定义插件结构:

(1) 安装plugman

在工程文件夹下,执行:
在这里插入图片描述

(2) 用plugman建立自定义插件Myplug

在这里插入图片描述
打开查看其目录结构

(3) 到Myplug目录,用plugman建立package.json文件

在这里插入图片描述
全部按缺省(回车)选择默认值。
生成的自定义插件目录结构如下:
在这里插入图片描述

(4)在myPlug\src目录下,建立HelloPlugin.java

该文件就是自定义插件的功能源码,
例如:定义一个HelloPlugin类,结构如下:
在这里插入图片描述
其中:execute中内容为插件要实现的具体功能,其参数分别为:
action:插件定义的函数名
args: 函数参数
callbackContext:回调,callbackContext.error()错误回调,callbackContext.success()为成功回调。

3、自定义插件配置文件

建立插件原生开发文件后,相关关键配置文件包括:package.json、plugin.xml和myPlug.js。

(1)myPlug.js

在这里插入图片描述
其中HelloPlugin.java中的类名、所定义的函数名和函数参数、函数返回值都是在此定义。

(2)package.json

在这里插入图片描述

(3)plugin.xml

在这里插入图片描述
其中,上图中:
中定义了插件包括的一个或多个JavaScript文件。
每个JS-module标签对应一个JavaScript文件,其中:
要注意的是: clobbers:定义了js-module元素标记,用于指定插件插入在window对象的命名空间,提供了在工程文件的应用程序index.js中如何调用自定义插件函数。
例如:这里
那么,在index.js中调用该函数的写法是:
在这里插入图片描述

(二)APP工程中的调用

在cordova工程中,用如下命令可以向工程中添加该自定义插件:
在这里插入图片描述
注意:
1、myPlug是工程myT下的子目录。
2、每次修改该自定义插件的java源文件或配置文件时,要先从工程删除该插件,再重新添加:
在这里插入图片描述

在工程index.js中调用该自定义插件,代码如下:
在这里插入图片描述
附:
1、更多自定义插件开发方法参考官方网址:Android插件开发指南
2、该案例部分源码来自:《Apache Cordova实战》,Raymonk K Camden著,清华大学出版社,2018年
3、本文以android自定义插件开发为例描述,ios平台自定义插件开发查阅官网。

http://www.xdnf.cn/news/286921.html

相关文章:

  • 多语言笔记系列:Polyglot Notebooks 中使用 xUnit 单元测试
  • WebAssembly(Wasm):现代Web开发的超级加速器
  • Spring Boot 之MCP Server开发全介绍
  • Linux | WEB服务器的部署及优化
  • 山东大学项目实训-创新实训-法律文书专家系统-项目报告(三)
  • 推特逆向算法,推特爬虫,数据分析,推特关键词搜索
  • C# 检查某个点是否存在于圆扇区内(Check whether a point exists in circle sector or not)
  • AI小智本地前后端部署
  • Web Workers 技术详解与最佳实践
  • Kubernetes(k8s)学习笔记(七)--KubeSphere 最小化安装
  • webpack 的工作流程
  • 备忘录模式(Memento Pattern)
  • 56.[前端开发-前端工程化]Day03-webpack构建工具
  • Windows11 VS code 安装 Cline 调用 Github MCP 配置过程坑点汇总
  • 深入探索 51 单片机:从入门到实践的全面指南
  • ctfshow——web入门361~368
  • 电脑怎么分屏操作?
  • Gradio全解20——Streaming:流式传输的多媒体应用(5)——基于WebRTC的摄像头实时目标检测
  • N-Gram 模型
  • 慢sql处理流程和常见案例
  • Webug4.0靶场通关笔记16- 第20关文件上传(截断上传)
  • 数据结构——算法复杂度
  • 部署GM DC Monitor 一体化监控预警平台
  • Python 整理3种查看神经网络结构的方法
  • 3DGS-slam:splatam公式
  • 开源模型应用落地-qwen模型小试-Qwen3-8B-推理加速-vLLM(一)
  • Git 标签管理
  • 【STM32 学习笔记】GPIO输入与输出
  • Scrapy分布式爬虫实战:高效抓取的进阶之旅
  • 【NLP】30. 深入理解 In-Context Learning 的核心机制与策略