日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 前端技术 > HTML >内容正文

HTML

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

發(fā)布時間:2023/12/10 HTML 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Dcloud HTML5 监听蓝牙设备 调用 原生安卓实现 - aspirant - 博客园 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

最近一直搞Dcloud ,這是HTML5版本的開發(fā),打包時候,可以打包成 apk 和ipa 分別運(yùn)行在安卓和ios 機(jī)器上面,

但是這里面的資料很少,遇到問題,之后只能自己鉆研總結(jié),

現(xiàn)在有這么一個需求,需要實(shí)現(xiàn)藍(lán)牙開啟后,監(jiān)聽藍(lán)牙接口傳遞的數(shù)據(jù),然后呈現(xiàn)給用戶。我試了很多方法,之前是在 HTML5上直接寫方法,監(jiān)聽藍(lán)牙狀態(tài),但是jS是單線程,直接把進(jìn)程阻塞了其他的啥也干不了,而且時間長了監(jiān)聽,總會莫名中斷,

這是我當(dāng)時寫的算法

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

這是直接在html5上監(jiān)聽藍(lán)牙,后來多次測量之后發(fā)現(xiàn),根本不能用。

使用了多種方法,比如 使用work開啟多線程,但是問題是 work開啟了但是無法調(diào)用plus對象,沒有任何用處。

使用異步調(diào)用,也無法實(shí)現(xiàn),

后來經(jīng)過多次詢問大牛之后,發(fā)現(xiàn),這個問題目前最好使用html5插件 的形式解決,寫完了插件,然后,用html點(diǎn)擊之后,觸發(fā)按鈕調(diào)用原生的藍(lán)牙監(jiān)聽程序。

具體的文檔在這里:

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

具體的實(shí)現(xiàn)方法,這篇文檔,我至少要讀了5遍左右,終于寫出了插件,成功的調(diào)用了原生監(jiān)聽程序。

要知道如果我們要寫安卓插件的話,只能使用離線打包,目前不支持在線打包。

因此如果寫原生插件,首先要會離線打包,使用安卓程序打包,

具體的打包流程請參考

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

我建議大家多多幾遍,需要注意的事項(xiàng):

(1) 離線打包要下載他們的sdk 地址:

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

(2)注意:因?yàn)槠渌谌降腟DK也使用到包名相關(guān)資源配置,所以需要在AndroidManifest.xml將所有“io.dcloud.HBuilder.Hello”替換成要修改成的包名。

(3)打開assets -> apps 目錄,將下面“HelloH5”目錄名稱修改為應(yīng)用manifest.json中的id名稱(這步非常重要,否則會導(dǎo)致應(yīng)用無法正常啟動),并將所有應(yīng)用資源拷貝到其下的www目錄中:

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

其中appid值為HBuilder應(yīng)用的appid,必須與應(yīng)用manifest.json中的id值完全一致;appver為應(yīng)用的版本號,用于應(yīng)用資源的升級,必須保持與manifest.json中的version -> name值完全一致;version值為應(yīng)用基座版本號(plus.runtime.innerVersion返回的值),不要隨意修改。

學(xué)會了如何打包之后,我們可以做一個很小的打包的源程序,專門用來打包用,

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

具體文檔在:http://ask.dcloud.net.cn/docs/#http://ask.dcloud.net.cn/article/66

具體的方法就是,先使用安卓源程序上寫好監(jiān)聽的方法,然后把html5的文件放到資源文件夾assess底下,調(diào)用寫好的安卓監(jiān)聽方法;

?具體需要注意的地方:

(1)首先要下載HTML5+基座的Android版SDK點(diǎn)擊下載解壓后將HBuilder-Integrate工程導(dǎo)入到ADT中。 這里你會下載到好幾個文件夾,有一個HBuilder-hello的 這個是離線打包用的,還有個是 HBuilder-Integrate,這個已經(jīng)寫好了插件了,運(yùn)行一下看看

(2) 關(guān)聯(lián)JS插件名和原生類

在編寫擴(kuò)展插件時需要修改“/assets/data”中properties.xml文件,在其中添加JS對象名稱和Android包的類名對應(yīng)關(guān)系,SDK會根據(jù)對應(yīng)的類名查找并生成相應(yīng)的對象并執(zhí)行對應(yīng)的邏輯。?

?

注意這里是在feature 的屬性底下加上這個,例子中在service底下加了,如果不在feature底下加的話會報(bào)錯,缺少plusintest插件的權(quán)限。

"應(yīng)用未添加plugintest權(quán)限,請?jiān)趍anifest.json文件中permissions節(jié)點(diǎn)進(jìn)行配置,"
出現(xiàn)這個錯誤,怎么解決

就是這個錯誤:

(3)兩個都好了之后,把寫好的插件整合到 你的項(xiàng)目中。

總結(jié)

以上是生活随笔為你收集整理的Dcloud HTML5 监听蓝牙设备 调用 原生安卓实现 - aspirant - 博客园的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。