色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

搭載OpenHarmony2.0的3516開發板上開發的第一個Hap-WIFI

OpenHarmony技術社區 ? 來源:鴻蒙技術社區 ? 作者:panda_coder ? 2021-06-30 09:10 ? 次閱讀

本次將分為上下兩篇講述在搭載 OpenHarmony2.0 的 3516 開發板上開發的第一個 Hap-WIFI,目前 Openharmony2.0 僅支持 JSUI,所以以下內容皆為 JSUI 開發。

源碼碼已上傳至 gitee:

https://gitee.com/panda-coder/open-harmony-apps/tree/master/Wifi

現有不足之處為只能獲取到 WiFi 的 ipv6,獲取不到 ipv4,已提 issue。也是因為這個原因文章才發出,本想去研究 cpp 源碼試著解決問題,奈何能力有限。后續會進一步完善,并加上開啟熱點等功能。

配置 SDK、開發工具等步驟將不再贅述,請參考:《在OpenHarmony2.0 上安裝自己的系統應用》

e855d1fa-d91a-11eb-9e57-12bb97331649.png

內容

上篇:

WiFi 的界面排版

WiFi 的 JS-API

下篇:

自定義的鍵盤組件的開發講解(OpenHarmony2.0 無系統輸入法,input框無法輸入)。①鍵盤的排版。②鍵盤的特殊功能鍵。③鍵盤數據回傳-JS 自定義組件的事件傳遞。

代碼目錄

src

└─main

├─js

│ └─default

│ ├─common ----------------------- 公共庫

│ ├─i18n

│ ├─images ----------------------- 圖片資源

│ └─pages ----------------------- 頁面及模塊

│ ├─index --------------------- 主界面

│ ├─keyboard ------------------ 鍵盤模塊

│ └─wifiItem ------------------ WiFi列表項模塊

└─resources

└─base

├─element

└─media

布局排版

①index 主界面

e8674246-d91a-11eb-9e57-12bb97331649.png

主界面分為上下兩部分,上部分為控制顯示面板,下部分為 WiFi 列表:

wifi-info 為上部控制面板

wifi-list 為下半部 wifi 列表

dialog 分別為密碼彈出/鍵盤彈窗

②wifi-info

《div class=“wifi-info” style=“align-content: center;justify-content: space-between;”》

《!--左側wifi圖片--》

《div style=“justify-content: center;align-items: center;width: 60%;flex-direction: column;”》

《image src=“。。/。。/images/wifi.png” style=“width:100px;height:100px;”》《/image》

《text style=“color: white;font-size: 30px;margin-top: 6px;”》WLAN 2.4GHz《/text》

《text》{{console}}《/text》

《/div》

《divider vertical=“true” style=“color: white;stroke-width:2px;padding: 30px 0px;”》《/divider》

《!--右側WiFi詳情--》

《div style=“justify-content: center; align-items: center;flex-direction: row;width: 100%;”》

《text style=“color: white;padding: 10px;margin-left: 10px;width: 80%;text-align: start;”》{{state}}《/text》

《switch textoff=“關閉” @change=“wifiSwitchChanged” texton=“開啟” showtext=“true” checked=“{{ wifiInfo.isActive }}” style=“font-size: 20px;text-padding:6px;height: 80px;”》《/switch》

《/div》

《/div》

所有的 div 布局排版均為 flex 排版。左側為一張 WiFi 圖片,一段文字說明。console 字段為方便界面調試而使用的字段,默認為空,為空時不顯示。

《divider》 為分隔線控件,將左右兩側進行分割右側為一個 《text》 組件顯示狀態信息

如 WiFi 連接/開啟狀態,該值為 computed 計算值,《switch》 控件進行控制 WiFi 的開啟關閉。

③wifi-list

《div class=“wifi-list”》

《refresh refreshing=“{{isSaning}}” @pulldown=“refreshTouched”》

《list if=“{{wifiInfo.scanInfo && wifiInfo.scanInfo.length》0}}” 》

《list-item if=“{{connectItem && connectItem.ssid}}” style=“margin:0px 6px;padding: 10px 6px;width: 100%;justify-content: center;flex-direction: column;”》

《wifi-item @my-touched=“checkedWifi” style=“width: 100%;” value=“{{connectItem}}” checked=“true”》《/wifi-item》

《divider vertical=“false” style=“color: #D4D3D3;stroke-width:2px; margin-top: 6px;padding: 10px;”》《/divider》

《/list-item》

《list-item for=“{{WifiScanList}}” @touchstart=“listItemToucheStart” @touchmove=“itemMoved” tid=“id” style=“margin:0px 6px;padding: 10px 6px;width: 100%;justify-content: center;flex-direction: column;” 》

《wifi-item @my-touched=“checkedWifi” style=“width: 100%;” value=“{{$item}}”》《/wifi-item》

《divider vertical=“false” style=“color: #D4D3D3;stroke-width:2px; margin-top: 6px;padding: 10px;”》《/divider》

《/list-item》

《/list》

《text style=“justify-content: center;width: 100%;color: #959494;text-align: center;” else》當前無可用WIFI,請下拉刷新《/text》

《/refresh》

《/div》

WiFi 列表稍微復雜一點,首先通過 《refresh》 組件做了一個下拉功能,下拉時更新 wifi 掃描列表。

其次通過 list 和 list-item 組件配合將通過接口獲取到的 WiFi 對象數組進行顯示。

在顯示的時候優先顯示已連接數據,同時在下面的列表中排除已連接的,list-item 中使用自定義組件 wifi-item,并添加分割線組件進行分隔。

④wifiItem

布局代碼:

《div class=“container” @touchend=“boxTouchend”》

《div class=“box”》

《div class=“box-left”》

《text class=“{{checked?‘isChecked’:‘’}}”》{{ssid}}《/text》

《text》{{desc}}《/text》

《/div》

《div class=“box-right”》

《image style=“width: 80px;height:80px;” src=“。。/。。/images/wifi-2.png”》《/image》

《/div》

《/div》《/div》

ischecked 判斷當前是否為選中狀態,加載選中的樣式。

⑤dialog

第一個 dialog 為彈出輸入密碼框,第二個 dialog 為加載自定義的鍵盤組件,將在下一節進行講解。

第一個 dialog:

《dialog id=“wifi_dialog” cancel=“hideInputPassword” style=“height: 280px;width:90%;margin-bottom: 50%;border-radius: 3px;”》

《div style=“flex-direction: column;padding: 12px;”》

《text style=“font-size: 36px;font-weight: bolder;padding: 15px 3px;”》{{checkedWifiName}}《/text》

《div》

《input placeholder=“請輸入密碼” @touchend=“showKeyBoard” value=“{{wifiPassword}}” style=“border-radius: 3px;”》《/input》

《/div》

《div style=“justify-content: center;”》

《button class=“btn btn-default” @touchend=“connect” 》連 接《/button》

《button class=“btn btn-primary” @touchend=“hideInputPassword”》取 消《/button》

《/div》

《/div》

《/dialog》

需要注意的是,dialog 下只能有一個根節點。input 類型為了方便,未采用密碼形式,弱需要設為密碼方式,在 input 組件上增加 type=“password” 特性即可,更多類型可參考官方文檔。

JS API

WIFI 的官方倉庫地址:

https://gitee.com/openharmony/communication_wifi

找到該倉庫目錄下的 interfaces/kits/jskits/@ohos.wifi.d.ts 文件可以看到對 JS 已提供的 api 接口信息(文件注釋非常詳細,就不再贅述)。

但需要注意的是,開發中引用 wifi api 并非 @ohos.wifi,而是 @ohos.wifi_native_js。

cpp 位置為 interfaces/innerkits/native_cpp/js_napi/wifi_js.cpp:

static napi_value Init(napi_env env, napi_value exports)

{

napi_property_descriptor desc[] = {

DECLARE_NAPI_FUNCTION(“enableWifi”, EnableWifi),

DECLARE_NAPI_FUNCTION(“disableWifi”, DisableWifi),

DECLARE_NAPI_FUNCTION(“isWifiActive”, IsWifiActive),

DECLARE_NAPI_FUNCTION(“scan”, Scan),

DECLARE_NAPI_FUNCTION(“getScanInfos”, GetScanInfos),

DECLARE_NAPI_FUNCTION(“addDeviceConfig”, AddDeviceConfig),

DECLARE_NAPI_FUNCTION(“connectToNetwork”, ConnectToNetwork),

DECLARE_NAPI_FUNCTION(“connectToDevice”, ConnectToDevice),

DECLARE_NAPI_FUNCTION(“disConnect”, DisConnect),

DECLARE_NAPI_FUNCTION(“getSignalLevel”, GetSignalLevel)

};

NAPI_CALL(env, napi_define_properties(env, exports, sizeof(desc) / sizeof(napi_property_descriptor), desc));

return exports;

}

static napi_module wifiJsModule = {

.nm_version = 1,

.nm_flags = 0,

.nm_filename = NULL,

.nm_register_func = Init,

.nm_modname = “wifi_native_js”,

.nm_priv = ((void *)0),

.reserved = { 0 }

};

編輯:jq

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • IPv6
    +關注

    關注

    6

    文章

    690

    瀏覽量

    59485
  • WIFI
    +關注

    關注

    81

    文章

    5306

    瀏覽量

    204362
  • 源碼
    +關注

    關注

    8

    文章

    651

    瀏覽量

    29348
  • SDK
    SDK
    +關注

    關注

    3

    文章

    1044

    瀏覽量

    46122
  • OpenHarmony
    +關注

    關注

    25

    文章

    3744

    瀏覽量

    16470
  • OpenHarmony 2.0
    +關注

    關注

    0

    文章

    7

    瀏覽量

    928

原文標題:我在OpenHarmony上開發的第一個應用

文章出處:【微信號:gh_834c4b3d87fe,微信公眾號:OpenHarmony技術社區】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    【貝啟科技BQ3568HM開源鴻蒙開發板深度試用報告】1 - 開箱測試和技術資料準備

    中的“abiFilters”參數中需要至少包含armeabi/armeabi-v7a中的類型。也就是說雖然該開發板64位的ARM
    發表于 01-21 11:17

    OpenHarmony源碼編譯后燒錄鏡像教程,RK3566鴻蒙開發板演示

    本文介紹瑞芯微主板/開發板編譯OpenHarmony源碼后燒錄鏡像的教程,觸覺智能Purple Pi OH鴻蒙開發板演示。搭載了瑞芯微RK3566四核處理器,樹莓派卡片電腦設計,支持開
    的頭像 發表于 12-30 10:08 ?141次閱讀
    <b class='flag-5'>OpenHarmony</b>源碼編譯后燒錄鏡像教程,RK3566鴻蒙<b class='flag-5'>開發板</b>演示

    OpenHarmony怎么修改DPI密度值?觸覺智能RK3566鴻蒙開發板演示

    開源鴻蒙OpenHarmony系統下,修改DPI密度值的方法,觸覺智能Purple Pi OH鴻蒙開發板演示,搭載了瑞芯微RK3566四核處理器,Laval鴻蒙社區推薦開發板,已適配全
    的頭像 發表于 12-24 11:46 ?241次閱讀
    <b class='flag-5'>OpenHarmony</b>怎么修改DPI密度值?觸覺智能RK3566鴻蒙<b class='flag-5'>開發板</b>演示

    鴻蒙OpenHarmony南向/北向快速開發教程-迅為RK3568開發板

    新建第一個工程-HelloWorld P12_Dev-Eco studio的界面布局 P13_基本工程目錄簡介 P14_部署應用到開發板 P15_修改應用程序的名稱和圖標 P16_應用運行與調試
    發表于 07-23 10:44

    鴻蒙OpenHarmony【基于Hi3516DV300開發板(時鐘應用開發)】

    如何快速搭建基于OpenHarmony標準系統(Hi3516DV300開發板)的應用開發環境,并基于
    的頭像 發表于 05-08 15:27 ?1209次閱讀
    鴻蒙<b class='flag-5'>OpenHarmony</b>【基于Hi<b class='flag-5'>3516</b>DV300<b class='flag-5'>開發板</b>(時鐘應用<b class='flag-5'>開發</b>)】

    鴻蒙OpenHarmony南向:【Hi3516標準系統入門(命令行方式)】

    除小型系統外,Hi3516DV300開發板還支持標準系統。此章節簡要介紹如何使用命令行在Hi3516DV300開發板上進行標準系統的開發
    的頭像 發表于 05-08 09:26 ?925次閱讀
    鴻蒙<b class='flag-5'>OpenHarmony</b>南向:【Hi<b class='flag-5'>3516</b>標準系統入門(命令行方式)】

    鴻蒙OpenHarmony【小型系統 燒錄】(基于Hi3516開發板

    針對Hi3516DV300開發板,除了DevEco Device Tool(操作方法請參考燒錄))外,還可以使用HiTool進行燒錄。
    的頭像 發表于 04-28 15:03 ?1324次閱讀
    鴻蒙<b class='flag-5'>OpenHarmony</b>【小型系統 燒錄】(基于Hi<b class='flag-5'>3516</b><b class='flag-5'>開發板</b>)

    鴻蒙OpenHarmony【小型系統編譯】 (基于Hi3516開發板

    DevEco Device Tool支持Hi3516DV300開發板的源碼鍵編譯功能,提供編譯工具鏈和編譯環境依賴的檢測及鍵安裝,簡化復雜編譯環境的同時,提升了編譯的效率。
    的頭像 發表于 04-23 15:53 ?547次閱讀
    鴻蒙<b class='flag-5'>OpenHarmony</b>【小型系統編譯】 (基于Hi<b class='flag-5'>3516</b><b class='flag-5'>開發板</b>)

    OpenHarmony開發實例:【 待辦事項TodoList】

    TodoList應用是基于OpenHarmony SDK開發的安裝在潤和HiSpark Taurus AI Camera(Hi3516d)開發板標準系統
    的頭像 發表于 04-22 22:00 ?765次閱讀
    <b class='flag-5'>OpenHarmony</b><b class='flag-5'>開發</b>實例:【 待辦事項TodoList】

    OpenHarmony鴻蒙南向開發案例:【智能貓眼(基于Hi3518開發板)】

    基于Hi3518開發板,使用開源OpenHarmony開發的RTSP協議流媒體應用。達到將Hi3518開發板中攝像頭獲取的數據通過RTSP協議傳輸到手機并顯示 。
    的頭像 發表于 04-22 15:46 ?2103次閱讀
    <b class='flag-5'>OpenHarmony</b>鴻蒙南向<b class='flag-5'>開發</b>案例:【智能貓眼(基于Hi3518<b class='flag-5'>開發板</b>)】

    OpenHarmony鴻蒙南向開發案例:【智能貓眼(基于3516開發板)】

    基于Hi3516開發板,使用開源OpenHarmony開發的RTSP協議流媒體應用。達到將Hi3516
    的頭像 發表于 04-19 22:01 ?651次閱讀
    <b class='flag-5'>OpenHarmony</b>鴻蒙南向<b class='flag-5'>開發</b>案例:【智能貓眼(基于<b class='flag-5'>3516</b><b class='flag-5'>開發板</b>)】

    OpenHarmony南向開發案例:【智能油煙機】

    基于Hi3516開發板,使用開源OpenHarmony開發的應用。
    的頭像 發表于 04-18 15:54 ?1095次閱讀
    <b class='flag-5'>OpenHarmony</b>南向<b class='flag-5'>開發</b>案例:【智能油煙機】

    OpenHarmony南向開發案例:【智能中控屏】

    基于Hi3516開發板,使用開源OpenHarmony開發的應用。通過控制面板可以控制同局域網內的空調,窗簾,燈等智能家居設備。
    的頭像 發表于 04-17 16:12 ?415次閱讀
    <b class='flag-5'>OpenHarmony</b>南向<b class='flag-5'>開發</b>案例:【智能中控屏】

    【七】Purple Pi OH開發板帶你7天入門OpenHarmony

    進入OpenHarmony系統的世界,對于許多開發者來說,是次全新且充滿挑戰的旅程。通過PurplePiOH開發板這個窗口,我們不僅能夠觸摸到硬件本身的魅力,還有機會深入探索
    的頭像 發表于 03-22 08:31 ?452次閱讀
    【七】Purple Pi OH<b class='flag-5'>開發板</b>帶你7天入門<b class='flag-5'>OpenHarmony</b>!

    【六】Purple Pi OH開發板帶你7天入門OpenHarmony

    今天我們來從OpenHarmony簡介、環境搭建、創建第一個OpenHarmony項目等方面開始OpenHarmony應用開發
    的頭像 發表于 03-14 08:31 ?574次閱讀
    【六】Purple Pi OH<b class='flag-5'>開發板</b>帶你7天入門<b class='flag-5'>OpenHarmony</b>!
    主站蜘蛛池模板: 老年日本老年daddy| 国产精品久久人妻无码网站一区无 | 帅哥操帅哥| 门事件快播| 狠狠色狠狠色综合日日92| 边摸边吃奶边做激情叫床视| 亚洲视频一区在线| 臀精插宫NP文| 欧美牲交A欧美牲交VDO| 老牛天天晚上夜噜噜噜| 精品熟女少妇AV久久免费A片| 色人阁影视| 暖暖日本 在线 高清| 久久99国产亚洲高清观着| 国产精品亚洲第一区二区三区| a级成人免费毛片完整版| 色 花 堂 永久 网站| 奶头被客人吸得又红又肿| 久久精品国产男包| 国产最新进精品视频| 高清欧美一区二区三区| va亚洲va天堂va视频在线| 97人妻无码AV碰碰视频| 与子敌伦刺激对白亂輪亂性| 亚洲精品不卡视频| 亚洲AV色香蕉一区二区9255 | 久久re6热在线视频| 国产亚洲AV无码成人网站| 国产传媒精品1区2区3区| 姑娘日本大全免费观看版中文翻译| ca88亚洲城娱乐| av影音先锋影院男人站| 99爱免费视频| 97伦理97伦理2018最新| 4399的视频BD高清在线观看免费| 永久免费的污视频网站| 亚洲中文 字幕 国产 综合| 亚洲午夜久久影院| 亚洲视频在线观看不卡| 亚洲精品久久久久69影院| 亚洲精品免费在线|