我司项目提供Android的SDK(jar,aar),而客户使用HBuilder开发的H5项目,为了能让客户顺利集成我司业务能力,没办法要折腾Demo了,没有经验怎么办?
前面介绍过HBuilder的使用,官方也有明确HBuilder要调用jar包需要使用AndroidStudio离线打包的方式;所以,本项目也不例外,那就开始准备吧!
一、资源下载
从这里下载H5 SDK包,地址:http://download.dcloud.net.cn/[email protected]_20191115.zip
关于SDK导入方案详细如下:https://ask.dcloud.net.cn/article/103
下载后的资源如下图所示:
![H5项目如何调用aar、jar包资源(HBuilder离线打包实践) H5项目如何调用aar、jar包资源(HBuilder离线打包实践)](https://image.shishitao.com:8440/aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzU5OC8wYzE4YjE1YTEzMGRiOWQ2MGRhZTE2NzUyYmZkODJiNi5wbmc%3D.png?w=700&webp=1)
二、工程导入
如上图中的HBuilder-Hello是HBuilderX提供的标准SDK可以直接导入AndroidStudio中,如下图操作:
选择项目如下图:
![H5项目如何调用aar、jar包资源(HBuilder离线打包实践) H5项目如何调用aar、jar包资源(HBuilder离线打包实践)](https://image.shishitao.com:8440/aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzIxLzU0NzBmMWJkOWIxZDUwZTVlZmVhYjg3NWFiNGQ4ZDQ1LnBuZw%3D%3D.png?w=700&webp=1)
打开后如下图:
![H5项目如何调用aar、jar包资源(HBuilder离线打包实践) H5项目如何调用aar、jar包资源(HBuilder离线打包实践)](https://image.shishitao.com:8440/aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzUwMC8yMzYzNWMwYTZmNTYyMjdjYzJhZDYyM2IyMDMxZDI1NC5wbmc%3D.png?w=700&webp=1)
三、修改指导
Html源码位于HBuilderDemo\app\src\main\assets\apps\HelloH5\www目录下,JS和Html等资在其下安装调用,如下图:
![H5项目如何调用aar、jar包资源(HBuilder离线打包实践) H5项目如何调用aar、jar包资源(HBuilder离线打包实践)](https://image.shishitao.com:8440/aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzM1OC8wNzEwYmU1MWU1ZDg5OGNiNjYyZGNmNjg0Y2RhYTRjNi5wbmc%3D.png?w=700&webp=1)
四、调用方法
如前面《HBuilder中用JS发送Android广播》可用Native.js来实现调用,调用方法详细参考官方文档介绍。如下是我司项目的部分代码供参考:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no" /> <title></title> <script type="text/javascript"> // 扩展API加载完毕后调用onPlusReady回调函数 document.addEventListener( "plusready", onPlusReady, false ); // 扩展API加载完毕,现在可以正常调用扩展API function onPlusReady() { console.log("plusready"); } // 测试 function login(){ // 执行登陆操作 var main = plus.android.runtimeMainActivity(); var LivemsImp = plus.android.importClass("api.fs.pocsdk_fs.LivemsImp"); LivemsImp.getLivemsInstance(main.getApplicationContext()).attach(); }
function video(){ // 启动视频直播 var main = plus.android.runtimeMainActivity(); var LivemsImp = plus.android.importClass("api.fs.pocsdk_fs.LivemsImp"); LivemsImp.getLivemsInstance(main.this).startVideo(); } </script> </head> <body> <button onclick="login()">Login</button> <button onclick="video()">Video</button> </body> </html>
|