H5+app 安卓原生插件开发

article/2025/9/24 20:28:22

目录

1、参考文档

2、离线打包操作步骤

1、下载SDK

2.打开android studio导入项目

3.修改相关参数

1.修改AndroidManifest.xml文件

2.修改dcloud_control.xml文件

3.修改strings.xml

4.修改build.gradle

4.运行

 3原生拓展

1.java原生代码编写

2.配置文件

1.修改dcloud_properties.xml文件

2.修改manifest.json

3.编写调用的js文件

4.调用

5.调试

4.使用场景


1、参考文档

https://www.cnblogs.com/wenhui92/p/9052308.html#%E5%BC%80%E5%8F%91%E6%8F%92%E4%BB%B6

https://nativesupport.dcloud.net.cn/NativePlugin/README

https://ask.dcloud.net.cn/article/66

2、离线打包操作步骤

1、下载SDK

       https://nativesupport.dcloud.net.cn/AppDocs/download/android

下载sdk后解压

2.打开android studio导入项目

项目创建可以参照官方文档说明,坑比较多,建议直接打开例子来进行操作

3.修改相关参数

1.修改AndroidManifest.xml文件

1.修改meta-data

需要登录开发者中心获取

 

 

将id复制到AndroidManifest.xml中

<meta-dataandroid:name="dcloud_appkey"android:value="应用的Android" />

 2.修改包名

包名在离线打包管理处获取

 将页面上跟包名有关的都改成自己的

 3.修改应用名称以及图片、启动图片

splash为启动图片,名字是固定的,替换就好

2.修改dcloud_control.xml文件

修改appid

 

3.修改strings.xml

改成应用名称

4.修改build.gradle

1.修改defaultConfig

版本号和code最好与manifest.json保持一致

2.修改signingConfigs

相关信息可以从这里获取

4.运行

将apps文件删除

 然后自己在目录下新建个apps文件夹

打开HbuilderX将项目本地打包,选择本地打包->生成本地打包app资源

打包好后会生成一个路径,【appid】\www。操作正确的话appid和我们之前写的appid是一致的,若不一致,请看manifest.json中配置的id

将打包的文件复制到apps路径下,最终路径是 apps/【appid名称】/www

ok.配置结束直接运行。

 3原生拓展

离线打包没问题后就可以开始拓展原生插件了

1.java原生代码编写

文件需要写在java目录下,新建目录,java新建文件

 举个栗子

拓展类需要继承StandardFeature

写方法

方法的参数是固定的IWebview和JSONArray,方法名随意

public void expandFunction(IWebview pWebview, JSONArray array){}

接下就可以在该方法下编写需要的功能代码了

说明一下

public void expandFunction(IWebview pWebview, JSONArray array){/***这里是方法的内容** */String pCallBackID = array.optString(0);JSUtil.execCallback(pWebview, pCallBackID, "这里是内容!", JSUtil.OK, true);JSUtil.execCallback(pWebview, pCallBackID, "打印失败!", JSUtil.ERROR, true);}
类型说明
IWebview调用方法的页面
JSONArray调用方法时传进来的参数类似字符串数组 ,["数据1",“数据2”]
pCallBackID需要回调时用到,若不需要可以不要,在js传数据时传过来的。
JSUtil.execCallback回调js定义的成功、失败的方法,并传数据

2.配置文件

写完java代码后需要在配置文件中添加相关拓展功能

1.修改dcloud_properties.xml文件

在features中添加

在services中添加

2.修改manifest.json

3.编写调用的js文件

document.addEventListener( "plusready",  function(){var _BARCODE = 'ExpandDemo',var expandObj = {doExpandFunction:function(option){let successF = typeof option.successCallback !== 'function'?null:function(mes){option.successCallback(args);}let errorF = typeof option.errorCallback !== 'function'?null:function(mes){option.errorCallback(args);}let callbId = plus.bridge.callbackId(successF, errorF);return plus.bridge.exec(_BARCODE,"expandFunction",[callbId,option.jsonString]);},};window.plus.ExpandDemo = expandObj;
}, true);

说明一下 

变量说明
_BARCODE在配置文件配置的名字
callbId通过plus.bridge.callbackId(successF, errorF);注册后返回的callbackId
方法说明
plus.bridge.callbackId(successF, errorF);注册成功回调方法和失败回调方法,返回callbackId
plus.bridge.exec.exec(_BARCODE,"expandFunction",[callbId,option.jsonString]);触发调用定义的方法.exec("模块名","方法名",["参数1","参数2"])

4.调用

5.调试

debug调试

 

 成功!

4.使用场景

        设备上的功能需要使用原生开发时,可以要求对方发送原生安卓用例的demo,比如人脸识别,身份证读取,打印等等。看demo是如何调用打印、人脸识别的功能。

        了解怎么使用后,将demo引用的libs包导入后我们离线打包的工程下

然后在我们扩展的方法中按demo调用即可。


http://chatgpt.dhexx.cn/article/OUug2otn.shtml

相关文章

html5怎么制作app页面,玩转HTML5移动APP页面(动效篇)

作为一名前端&#xff0c;在拿到设计稿时你有两种选择&#xff1a; 加上高级大气上档次狂拽炫酷屌炸天的动画让页面动起来 作为一个有志向的前端&#xff0c;当然是选2啦&#xff01;可是需求时间又很短很短&#xff0c;怎么办呢&#xff1f; 这次就来谈谈一些动画设计的小技巧…

h5+hbuilder 制作手机app

Hbuilderx 下载地址 https://www.dcloud.io/hbuilderx.html 1.依次点击左上角 文件→ 新建→ 项目&#xff0c;会出现下面的界面。 2. index.html &#xff08;当然&#xff0c;引入的jq.js需要放到项目中&#xff09; <!DOCTYPE html> <html> <head><me…

Verilog带参数的`define用法

宏除了可以进行简单的文本替换,还可以像函数和任务一样传递指定多个参数分别对文本进行对应的替换. 示例1&#xff1a; define Disp(pa,pb,pc) \initial \begin \#1200; \$display("%d \n",(papbpc)); \$display(" data_ pa data_ pb data_ pc %d",(…

C语言中define的用法

define顾名思义&#xff0c;就是下定义&#xff0c;那么在C中它也发挥着下定义的作用。 1.提前定义变量 #include<stdio.h> #define N 100 int main() {int a10;printf("%d",Na);return 0; } 这个过程中N是100。 这个意思是提前定义N100&#xff0c;且这个…

C语言define高级用法大全

今天在看代码时&#xff0c;突然发现很多define的用法看不懂&#xff0c;故在此总结一下&#xff0c;顺便吐槽一下&#xff0c;C语言的宏复杂起来真的很难看懂。 不信的去看下这个的源码&#xff1a;【C语言开源库】lw_oopc&#xff1a;轻量级的C语言面向对象编程框架 一、宏…

Oracle基础之define用法简介教程

继上一篇博客Oracle绑定变量学习笔记&#xff0c;再写一篇define变量的简单教程 文章目录 1、define常量用法2、&和&&符号用法 1、define常量用法 注意&#xff1a;define常被误解为定义变量&#xff0c;其实不然&#xff0c;define定义的是字符常量&#xff0c;d…

#define的使用

目录 前言 1. #define定义标识符 2. #define定义宏 3. #define 替换规则 4. 宏和函数对比 前言 在很多C程序中&#xff0c;我们会在一个源文件的开头看到 #define 的字眼&#xff0c;和define的英文解释相同——可以理解为给xxx下定义&#xff0c;这里可以是标识符甚至是…

#define 的使用

#define 多数情况下我们是用来定义宏的&#xff0c;但是实际上&#xff0c;#define 作为预处理指令&#xff0c;也可以用来定义标识符&#xff0c;类似于 typedef&#xff0c;但是其本质和 typedef 是不同的。 目录 一、#define 定义标识符 1、定义和使用 2、#define 定义标…

C语言之#define用法入门详解

一、#define的基本语法 在C语言中&#xff0c;常量是使用频率很高的一个量。常量是指在程序运行过程中&#xff0c;其值不能被改变的量。常量常使用#define来定义。 使用#define定义的常量也称为符号常量&#xff0c;可以提高程序的运行效率。 其常见的用法包括两种&#xff0…

python微信聊天机器人_Python搭建一个微信聊天机器人

前言 因为班群里总是挺静的&#xff0c;所以想着要不放个机器人试试能不能活跃活跃气氛&#xff0c;然后就begin网上查阅资料试着建立个机器人。 语言环境开发环境&#xff1a;Ubuntu16.04 编程语言&#xff1a;Python2.7 步骤第一步&#xff1a;首先安装python2.7语言 su…

Python大佬用20行代码带你打造一个微信聊天机器人(附代码)

近来&#xff0c;打开微信群发消息&#xff0c;就会秒收到一些活跃分子的回复&#xff0c;有的时候感觉对方回答很在理&#xff0c;但是有的时候发现对方的回答其实是驴唇不对马嘴&#xff0c;仔细深究发现&#xff0c;原来对方是机器人。今天&#xff0c;小编就带大家用20行代…

16行代码实现微信聊天机器人,自动智能回复,打团了让它来陪老婆聊天

在我们的生活和工作当中,很多时候我们并不能及时地回复消息,尤其是业务比较多的人,客户给我们发消息我们不回又不好,但又没有那么多精力时时回复,这个时候智能机器人就能帮助我们解决很多问题。 像电商类的客服,像大的QQ群/微信群管理员,以及我们打游戏的时候,挂着脚本…

利用python实现微信聊天机器人(需自己设置关键字及回复内容)

本人为python小白写此帖纪念用python写的第一个脚本 微信聊天机器人 1、通过查找截图进行鼠标点击操作 2、通过直接输入屏幕中的坐标进行鼠标点击操作&#xff08;在复制他人最新信息时采用指定坐标双击&#xff09; # 双击并复制信息 pyautogui.doubleClick(394,…

php个人微信聊天机器人,wxpy将个人微信号变成微信聊天机器人

一、实验环境&#xff1a;win10 python3 wxpy 微信版本&#xff1a;6.6.5 1.1、从官网下载python最新版本并进行安装。 1.2、进入python安装目录Scripts/文件夹下&#xff0c;使用easy_install.exe pip 命令安装pip 1.3、使用pip install wxpy 命令安装wxpy 二、源码文件demo…

一个15分钟的视频,教你用Python创建自己的微信聊天机器人文中赠送全部源代码

你好&#xff0c;我是程序员晚枫。 在社区交流群&#xff08;&#x1f449;传送门&#xff09;里的朋友都知道&#xff0c;社区有一个智能聊天机器人&#xff1a; 1、24小时在线的智能客服&#xff0c; 2、根据大家的提问&#xff0c;自动回复对应的学习资料&#xff0c; 3、对…

微信聊天机器人

做一个微信聊天自动回复的机器人 # -*- coding: utf-8 -*- """ Created on Tue Jun 4 18:30:39 2019author: yyp """#-*- coding:utf-8 -*- import itchat import requestsdef get_response(msg):apiurl http://i.itpk.cn/api.php #//moli机器…

Python Wechaty 微信聊天机器人 padlocal协议搭建指南

python版本推荐3.9 微信机器人框架&#xff1a;Wechaty Python-Wechaty中文手册 开发前需要准备&#xff1a; Linux服务器&#xff08;CentOS 8.0&#xff0c;Python环境&#xff0c;Docker&#xff09;本地Python开发环境&#xff08;我个人使用VSCode&#xff09;申请一个…

用Python写了一个微信聊天机器人

在我们的生活和工作当中&#xff0c;很多时候我们并不能及时地回复消息&#xff0c;尤其是业务比较多的人&#xff0c;客户给我们发消息我们不回又不好&#xff0c;但又没有那么多精力时时回复&#xff0c;这个时候智能机器人就能帮助我们解决很多问题。 像电商类的客服&#…

Python创建微信聊天机器人

最近想着做一个微信机器人&#xff0c;主要想要实现能够每天定时推送天气预报或励志语录&#xff0c;励志语录要每天有自动更新&#xff0c;定时或当有好友回复时&#xff0c;能够随机推送不同的内容。于是开始了分析思路。博主是采用了多线程群发&#xff0c;因为微信对频繁发…

三步轻松打造微信聊天机器人(附源码)

最近微信公众平台开发是热门&#xff0c;我也跟风做了一个陪聊的公众号。 其实类似的自动回话程序早就有了&#xff0c;比如前一阵很火的小黄鸡&#xff08;还是小黄鸭来着&#xff1f;&#xff09;。但尽管是跟风&#xff0c;也要体现一些不同。别人做的都是中文陪聊&#xff…