最近一直搞Dcloud ,这是HTML5版本的开发,打包时候,可以打包成 apk 和ipa 分别运行在安卓和ios 机器上面,

但是这里面的资料很少,遇到问题,之后只能自己钻研总结,

现在有这么一个需求,需要实现蓝牙开启后,监听蓝牙接口传递的数据,然后呈现给用户。我试了很多方法,之前是在 HTML5上直接写方法,监听蓝牙状态,但是jS是单线程,直接把进程阻塞了其他的啥也干不了,而且时间长了监听,总会莫名中断,

这是我当时写的算法

http://ask.dcloud.net.cn/publish/article/875

这是直接在html5上监听蓝牙,后来多次测量之后发现,根本不能用。

使用了多种方法,比如 使用work开启多线程,但是问题是 work开启了但是无法调用plus对象,没有任何用处。

使用异步调用,也无法实现,

后来经过多次询问大牛之后,发现,这个问题目前最好使用html5插件 的形式解决,写完了插件,然后,用html点击之后,触发按钮调用原生的蓝牙监听程序。

具体的文档在这里:

http://ask.dcloud.net.cn/docs/#http://ask.dcloud.net.cn/article/66

具体的实现方法,这篇文档,我至少要读了5遍左右,终于写出了插件,成功的调用了原生监听程序。

要知道如果我们要写安卓插件的话,只能使用离线打包,目前不支持在线打包。

因此如果写原生插件,首先要会离线打包,使用安卓程序打包,

具体的打包流程请参考

http://ask.dcloud.net.cn/docs/#http://ask.dcloud.net.cn/article/38

我建议大家多多几遍,需要注意的事项:

(1) 离线打包要下载他们的sdk 地址:

http://ask.dcloud.net.cn/article/103

(2)注意:因为其它第三方的SDK也使用到包名相关资源配置,所以需要在AndroidManifest.xml将所有“io.dcloud.HBuilder.Hello”替换成要修改成的包名。

(3)打开assets -> apps 目录,将下面“HelloH5”目录名称修改为应用manifest.json中的id名称(这步非常重要,否则会导致应用无法正常启动),并将所有应用资源拷贝到其下的www目录中:

(4)打开assets -> data下的control.xml文件,修改appid值:

其中appid值为HBuilder应用的appid,必须与应用manifest.json中的id值完全一致;appver为应用的版本号,用于应用资源的升级,必须保持与manifest.json中的version -> name值完全一致;version值为应用基座版本号(plus.runtime.innerVersion返回的值),不要随意修改。

学会了如何打包之后,我们可以做一个很小的打包的源程序,专门用来打包用,

然后下一步就是写插件了:

具体文档在:http://ask.dcloud.net.cn/docs/#http://ask.dcloud.net.cn/article/66

具体的方法就是,先使用安卓源程序上写好监听的方法,然后把html5的文件放到资源文件夹assess底下,调用写好的安卓监听方法;

具体需要注意的地方:

(1)首先要下载HTML5+基座的Android版SDK点击下载解压后将HBuilder-Integrate工程导入到ADT中。 这里你会下载到好几个文件夹,有一个HBuilder-hello的 这个是离线打包用的,还有个是 HBuilder-Integrate,这个已经写好了插件了,运行一下看看

(2) 关联JS插件名和原生类

在编写扩展插件时需要修改“/assets/data”中properties.xml文件,在其中添加JS对象名称和Android包的类名对应关系,SDK会根据对应的类名查找并生成相应的对象并执行对应的逻辑。

注意这里是在feature 的属性底下加上这个,例子中在service底下加了,如果不在feature底下加的话会报错,缺少plusintest插件的权限。

"应用未添加plugintest权限,请在manifest.json文件中permissions节点进行配置,"
出现这个错误,怎么解决

就是这个错误:

(3)两个都好了之后,把写好的插件整合到 你的项目中。

Dcloud HTML5 监听蓝牙设备 调用 原生安卓实现 - aspirant - 博客园相关推荐

  1. 互评Alpha版本—博客园安卓APP

    互评Alpha版本-博客园安卓APP 测评人:徐劭斌 基于NABCD评论作品 1.根据NABCD评论作品的选题:   N(Need,需求):博客园的网页版深受软件开发人员的喜爱.博客园是一个非常好的学 ...

  2. 互评Beta版本—博客园安卓APP

    互评Beta版本-博客园安卓APP 测评人:刘淑霞 一.基于NABCD评论作品 1.根据NABCD评论作品的选题:   N(Need,需求):电脑网页版的博客园越来越受使用者的喜爱,但是每次都得打开电 ...

  3. dcloud 5+ 监听安卓前后台切换状态 并后台运行程序

    dcloud 5+ 监听安卓前后台切换状态 并后台运行程序 监听安卓前后台切换状态 function monitorRunStatus() {// 部分型号监听"应用从前台切换到后台&quo ...

  4. 安卓开发笔记——打造属于自己的博客园APP(一)

    最近事情比较多,博客更新又落下了,平时有个习惯,喜欢睡前看看博客园里博友的文章,但一直感觉APP市场上下载下来的博客园客户端用起来并不是很舒服,近来发现博客园也有对外开放的数据接口,所以打算自己写个博 ...

  5. 为什么博客园安卓端无法登陆,真服了

    alert("博客园安卓端无法登陆,真服了"); 给博客园发邮件,说是只有IOS的版本,歧视安卓狗啊 转载于:https://www.cnblogs.com/helloworld1 ...

  6. 听著名服务端主程讲座有感 - archy_yu - 博客园

    听著名服务端主程讲座有感 - archy_yu - 博客园 听著名服务端主程讲座有感     前些日子,一个著名页游服务端主称做了一次演讲,有幸在台下聆听了这位主程的演讲.已经过去一段时间了,偶尔还是 ...

  7. HTML5+CSS大作业——简单的程序员个人博客(7页) 大学个人博客网页制作教程 表格布局网页模板

    HTML5+CSS大作业--简单的程序员个人博客(7页) 大学个人博客网页制作教程 表格布局网页模板 常见网页设计作业题材有 个人. 美食. 公司. 学校. 旅游. 电商. 宠物. 电器. 茶叶. 家 ...

  8. 沪江日语电台和听歌学日语节目走进博客园咯~

    [hjp3]hjptype=song&player=5&file=http://podcast.hjbbs.com/podcast/20080722/20080722125051219 ...

  9. 推荐18个基于 HTML5 Canvas 开发的图表库 - 梦想天空(山边小溪) - 博客园

    推荐18个基于 HTML5 Canvas 开发的图表库 - 梦想天空(山边小溪) - 博客园 推荐18个基于 HTML5 Canvas 开发的图表库

最新文章

  1. 处理时间_7_60个Mysql日期时间函数汇总
  2. AT2064-[AGC005F]Many Easy Problems【NTT】
  3. C#LeetCode刷题之#263-丑数(Ugly Number)
  4. 开启协程_软件特攻队|GCC10发布,GCC 11将支持C++20协程功能?
  5. 构建linux内核源码树
  6. 微软力挺Silverlight 反击美棒球赛用Flash直播
  7. python编程入门 pdf-PYTHON游戏编程入门 PDF 下载
  8. Android-- bionic介绍
  9. ACM投稿ccs concepts查询The ACM Computing Classification System
  10. 小心Java中封装类的值比较
  11. JavaIO流实现文件传输
  12. 更改Servlet需要重启Tomcat
  13. vcard怎么转excel vcf转excel神器教程
  14. 运输业的EDI是如何运作的?
  15. 为什么计算机关机后自动开机,老司机教你电脑关机后自动开机怎么办
  16. android 平板分辨率是多少合适,为什么越来越多的平板放弃16:9的屏幕比例?
  17. 美团大众点评往届笔试面试题汇总
  18. usleep()和sleep()的区别
  19. 实现Comparable接口和Comparator接口,并重写compareTo方法和compare方法
  20. 【UGUI】Unity4.6 UI按钮绑定事件(四)

热门文章

  1. 一场虚拟的鄂尔多斯婚礼 (图)
  2. MSP430程序跑飞原因
  3. python获取屏幕文字_详解:四种方法教你对Python获取屏幕截图(PyQt , pyautogui)...
  4. python莫比乌斯_莫比乌斯函数 - osc_7eqzxl4g的个人空间 - OSCHINA - 中文开源技术交流社区...
  5. java原子操作cas_java并发编程系列二:原子操作/CAS
  6. pgsql vs mysql查询_对比平台--SQL Server Vs PostgreSQL
  7. 李宏毅机器学习课程11~~~为何要深?
  8. Swift中文件和图片上传处理
  9. C#利用WebClient 两种方式下载文件(一)
  10. uva 11997 K Smallest Sums 优先队列处理多路归并问题