1. 程式人生 > >物聯網跨平臺應用開發

物聯網跨平臺應用開發

本文由嵌入式企鵝圈原創團隊成員Hunter_Zhu提供。

基於H5進行跨平臺應用開發是未來的趨勢,其具有跨平臺相容、開發門檻低、運維難度低等優勢。phonegap、Dcloud等平臺已經實現了很多的應用案例。儘管當前各個平臺在硬體介面和介面效率上仍有亟待解決的問題,但相信會得到快速的迭代解決。物聯網應用一般要比傳統應用要顯得簡單一點,因此使用跨平臺開發達到原生體驗是一個極好的路徑。

機智雲基於apicloud跨平臺實現了接入和資料訪問介面。本文對其進行介紹,但原理對所有跨平臺開發均是適用的。

在”物聯網APP開發利器之APICloud”一文中已經介紹了APICloud平臺的使用和本地除錯環境搭建,APICloud作為跨平臺APP開發的工具實際是通過用一個通用介面來實現不同平臺的功能。因為APICloud已經把通用介面到各個不同平臺的介面對應做好了,所以APICloud就用一份WEB程式碼來跟各個平臺的瀏覽器整合編譯,並生成對應的平臺安裝包,例如安卓一個.apk,蘋果一個.ipa,即開發者只需要進行H5開發即可。

       本篇文章將講解基於APCloud平臺的機智雲APP端開發的幾個要點,幫助大家對機智雲平臺下這種開發模式有快速深刻的認識。

一、APICloud平臺中新增gizWifiSDK模組

       gizWifiSDK模組是機智雲平臺對APICloud功能的拓展,封裝了應用對接雲平臺以及和裝置互動的介面實現,使得開發者能夠通過簡單的API介面呼叫即能夠完成相應的功能,例如:WiFi裝置配網、裝置繫結等功能。

       在H5開發過程中,需要將模組進行匯入並且完成初始化:

       api是由APCloud提供的一個基礎物件,物件中含有應用程式需要的一些基本方法和屬性,比如視窗操作等一些函式,通過api物件中的require方法來完成對模組的載入,載入完成後通過gizwitsSDK.startWithAppID來完成SDK初始化。

二、在機智雲平臺中獲取APPID

       開發者需要在機智雲平臺中完成專案建立——》應用配置——》新增新應用,完成後即可獲得相應的App ID以及App Secret,通過這些資訊標註了一個應用,在介面呼叫中例如獲取手機驗證碼時需要用到這些資訊。

三、使用者登陸、註冊功能

       這是APP開發中必備的基本功能,機智雲提供三種登陸方式:實名登陸、匿名登陸以及第三方登陸三種方式,實名登陸的賬號資訊可以通過手機號、郵箱以及普通使用者名稱進行註冊,匿名登陸允許使用者不進行賬號註冊一樣可以發現裝置和控制裝置,匿名使用者可以轉換為手機使用者或普通使用者,第三方登陸支援百度、新浪、QQ進行登陸。

       這裡簡單列舉一下實名方式的幾個介面:

1)獲取手機驗證碼(用於註冊或重置密碼):

2)註冊使用者:

3)使用者登陸:

       使用者完成登陸後返回的資訊包含了使用者uid以及登陸會話token,返回的這兩個引數在裝置功能介面中需要使用,例如:裝置繫結等操作的介面。

四、裝置的基本操作功能

       完成登陸後,我們接下來的工作和微信H5開發類似——要完成的就是獲取使用者繫結的裝置列表——》訂閱監聽裝置的狀態和事件——》進行裝置讀寫操作。

1)獲取繫結裝置列表:

呼叫這個介面所獲得結果根據手機的聯網狀態會分為幾種:手機通過外網獲取到的是使用者已繫結的裝置列表;手機在區域網內獲取到的是使用者已繫結的裝置以及區域網內未繫結的裝置(未繫結裝置通過屬性isBind為false標註);手機無網時,區域網未繫結裝置會消失,但會保留之前已經獲取過的繫結裝置。

獲得的每個裝置的資訊包括:

2)訂閱裝置或解除訂閱:

       這個方法涵蓋了兩個主要功能:訂閱裝置與否、對區域網內的裝置進行自動繫結。訂閱裝置表明使用者關心這個裝置的訊息推送,同時如果該裝置是使用者未繫結的裝置,在訂閱的時候會自動進行裝置繫結;解除訂閱裝置即使用者不再關心裝置的訊息推送,解除訂閱的時候不會解綁裝置。

       另外,需要主要注意的是,這裡載入的是gizWifiDevice類,這一個類裡面的方法和裝置的相關操作功能有關。

3)註冊裝置狀態變化通知:

       通過這個方法監聽裝置的狀態變化,包括裝置上下線、裝置狀態、報警、故障資訊,開發者通過提供回撥函式來對上報的資料進行處理。

4)給裝置傳送控制指令:

       裝置需要在訂閱後,並且狀態為可控的情況下,使用者才能夠對裝置進行控制。SDK優先選擇區域網進行指令下發,如果不在區域網下,選擇的是遠端網路。另外,在使用者下發控制裝置指令後,裝置會再次上報裝置的狀態,這樣就形成一種閉環控制。

五、裝置配網功能

       裝置提供兩種方式進行配網:SoftAP方式、AirLink方式,在使用配網介面的時候需要區分不同產商的模組來完成配網,另外在配網成功後SDK會返回裝置的mac、裝置id以及所屬的產品id——因此開發者可以呼叫前面提到訂閱介面來完成區域網內裝置繫結。

1)獲取手機連線的ssid:

       手機必須先連線到配置的wifi路由下。

2)配置裝置路由:

六、裝置繫結

       前面提到,區域網內的裝置能夠通過訂閱介面(gizWifiDevice.setSubscribe)來完成繫結,除此以外還能夠通過另外一個介面來完成繫結:

       通過這個介面進行繫結的一個情景就是將裝置相關的mac資訊記錄在二維碼中,由使用者通過應用的二維碼外掛來完成掃描和讀取資訊,然後進行裝置繫結。在APICloud平臺中,我們可以載入scanner來完成二維碼掃描的功能:

       機智雲提供的模組包中不止以上提到的介面,以上只是從中抽取出了常用的和重要的進行簡要介紹,意在幫助大家對機智雲基於APICloud平臺下的APP開發有個快速和深刻的認識。更多的介面可以在APICloud平臺中搜索gizWifiSDK模組的說明文件進行檢視。

更多嵌入式Linux和物聯網原創技術分享敬請關注微信公眾號:嵌入式企鵝圈