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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > HTML >内容正文

HTML

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

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

最近一直搞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 - 博客园的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。