在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

    文章

    713

    瀏覽量

    60985
  • WIFI
    +關注

    關注

    81

    文章

    5392

    瀏覽量

    208136
  • 源碼
    +關注

    關注

    8

    文章

    671

    瀏覽量

    30290
  • SDK
    SDK
    +關注

    關注

    3

    文章

    1076

    瀏覽量

    48711
  • OpenHarmony
    +關注

    關注

    29

    文章

    3848

    瀏覽量

    18503
  • OpenHarmony 2.0
    +關注

    關注

    0

    文章

    7

    瀏覽量

    962

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

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

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    【匯思博SEEK100開發板試用體驗】01 SEEK100開發板開箱&簡介

    前言 今天剛收到SEEK100開發板,非常感謝匯思博和發燒友論壇給的這次開發板評測機會。這張開發板是出廠搭載OpenHarmony 5.0
    發表于 07-03 22:28

    開鴻開發板深度體驗:從開源鴻蒙開發到AI場景實踐

    開鴻開發板KaihongBoard-3588S-SBCKaihongBoard-3576-SBC體驗開源鴻蒙能力學習開源鴻蒙開發●●●搭載KaihongOS
    的頭像 發表于 07-03 17:03 ?229次閱讀
    開鴻<b class='flag-5'>開發板</b>深度體驗:從開源鴻蒙<b class='flag-5'>開發</b>到AI場景實踐

    搭載OpenHarmony 5.0系統!視美泰M-K1HSE開發板免費試用

    搭載OpenHarmony 5.0系統!視美泰M-K1HSE開發板免費試用,可以到這里申請體驗,申請地址:https://bbs.elecfans.com/try_MK1HSE.html
    發表于 05-28 17:53

    貝啟BQ3568HM 開發板被選用為 OpenHarmony 明星開發板

    經開放原子開源基金會OpenHarmony社區官方測評評選,貝啟科技BQ3568HM開源鴻蒙開發板被正式選用為OpenHarmony明星開發板。BQ3568HM開源鴻蒙
    的頭像 發表于 05-25 00:22 ?545次閱讀
    貝啟BQ3568HM <b class='flag-5'>開發板</b>被選用為 <b class='flag-5'>OpenHarmony</b> 明星<b class='flag-5'>開發板</b>

    基于小凌派RK2206開發板OpenHarmony如何使用IoT接口控制UART外設

    1、實驗簡介本實驗將演示如何在小凌派-RK2206開發板使用IOT庫的UART接口,進行UART編程開發。例程將創建任務,通過配置UA
    的頭像 發表于 04-22 14:22 ?433次閱讀
    基于小凌派RK2206<b class='flag-5'>開發板</b>:<b class='flag-5'>OpenHarmony</b>如何使用IoT接口控制UART外設

    Linux開發板CAN總線測試方法,觸覺智能RK3568開發板演示

    本文介紹Linux開發板CAN總線測試方法,使用觸覺智能EVB3568鴻蒙開發板演示,搭載瑞芯微RK3568,四核A55處理器,主頻2.0Ghz,1T算力NPU;支持
    的頭像 發表于 04-11 19:14 ?309次閱讀
    Linux<b class='flag-5'>開發板</b>CAN總線測試方法,觸覺智能RK3568<b class='flag-5'>開發板</b>演示

    基于小凌派RK2206開發板OpenHarmony如何使用IoT接口控制GPIO外設

    1、案例簡介本案例主要是如何在小凌派-RK2206開發板使用IOT庫的GPIO接口,進行GPIO編程開發。例程將創建任務,通過配置GP
    的頭像 發表于 04-11 15:36 ?1182次閱讀
    基于小凌派RK2206<b class='flag-5'>開發板</b>:<b class='flag-5'>OpenHarmony</b>如何使用IoT接口控制GPIO外設

    基于小凌派RK2206開發板OpenHarmony如何使用IoT接口控制ADC外設

    1、案例簡介本案例主要講解如何在小凌派-RK2206開發板使用IoT庫的ADC接口,進行ADC編程開發。例程內容為創建任務,讀取按鍵的
    的頭像 發表于 04-10 16:00 ?411次閱讀
    基于小凌派RK2206<b class='flag-5'>開發板</b>:<b class='flag-5'>OpenHarmony</b>如何使用IoT接口控制ADC外設

    北京迅為RK3568開發板OpenHarmony系統南向驅動開發內核HDF驅動框架架構

    北京迅為RK3568開發板OpenHarmony系統南向驅動開發內核HDF驅動框架架構
    的頭像 發表于 03-11 14:13 ?1081次閱讀
    北京迅為RK3568<b class='flag-5'>開發板</b><b class='flag-5'>OpenHarmony</b>系統南向驅動<b class='flag-5'>開發</b>內核HDF驅動框架架構

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

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

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

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

    OpenHarmony 明星開發板和應用招募啟動,等你來!

    優秀標桿,活動將圍繞OpenHarmony開發板和應用展開,歷經報名、初選、復選、公示四階段,最終評選出的優秀開發板和應用將在社區進行重點推廣。 報名時間 活動報名時間從即日開始
    發表于 09-14 15:21

    【迅為RK3568開發板OpenHarmony學習開發系列教程(第1期 北向基礎篇

    P12P11_新建第一個工程-HelloWorld3:24 P13P12_Dev-Eco studio的界面布局6:07 P14P13_基本工程目錄簡介10:33 P15P14_部署應用到開發板2:25
    發表于 08-16 15:27

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

    新建第一個工程-HelloWorld P12_Dev-Eco studio的界面布局 P13_基本工程目錄簡介 P14_部署應用到開發板 P15_修改應用程序的名稱和圖標 P16_應用運行與調試
    發表于 07-23 10:44
    主站蜘蛛池模板: 91福利专区| 99久久精品国产自免费 | 日本三级香港三级人妇 m | 国产成人精品亚洲日本在线观看 | 色日韩在线| 樱桃磁力bt天堂 | 欧美综合成人网 | 国产亚洲人成a在线v网站 | 国产精品成人一区二区三区 | 丁香六月婷婷精品免费观看 | 午夜免费小视频 | 真实国产伦子系 | 婷婷亚洲五月琪琪综合 | 四虎国产永久在线精品免费观看 | 看屁屁www视频免费观看 | 国产伦精品一区二区三区高清 | 推倒都市极品贵妇 | 国产精品久久久久久久免费 | 黄网站色在线视频免费观看 | 色多多www视频在线观看免费 | 五月天天| 2021成人国产精品 | 亚洲五月综合网色九月色 | 澳门久久 | 欧美亚洲另类在线观看 | 高清影院在线欧美人色 | 深夜免费视频 | 亚洲国产系列 | 国产深夜福利在线观看网站 | 女人张开腿给男人桶爽免费 | 在线观看免费视频片 | 欧美色亚洲图 | 性欧美日本| 午夜手机福利 | 久青草久青草高清在线播放 | 欧美精品区| 欧美精品色精品一区二区三区 | 99视频热 | 轻点灬大ji巴太粗太长了爽文 | 日本午夜片成年www 日本午夜三级 | 天天爽夜夜爽每晚高澡 |