【黑馬程序員】鴻蒙Next星河版項目實戰-守護助手APP應用開發-Day2-09-權限管理封裝-準備工作

黑马程序员
29粉絲
10 次觀看·2024年9月23日
本課程100% 鴻蒙NEXT星河版原生應用開發,API 12 版本 SDK。基本覆蓋主流APP的能力集,將來遷移項目都可以看這個項目,權限、位置、地圖、錄音、相冊、播放器、傳感器、通訊錄、數據庫等應有盡有。
接下來呢我們是進行這個叫做權限管理的封裝
爲什麼要封裝呢
因爲我們在這個叫做權限管理頁面
其實除了我們要申請這一個叫做日曆權限之外呢
我們還有麥克風呀
還有相機呀
這裏其實還蠻多的
對不對
那如果每一次申請權限呢
都得寫像我們今天上午的時候
對不對
每一次申請權限呢
那你會發現這個流程又是固定的
非常之固定
拿到管理器
然後向用戶申請權限
然後再檢查一下這個權限過還是沒過
那不一樣的地方呢
其實最主要的就是哪裏啊
就是這個
哎
就是這一個配置像對不對啊
就你要申請日曆的時候呢
哎
這裏寫上的是日曆
你要申請的是啊
相機的時候呢
哎
這一邊就傳入那個相機就可以了啊
所以變化呢
他僅僅是一小部分啊
那對於這個檢查權限呢
其實也是一樣啊
我們到時候就要在這裏呢
檢查一下
哎
這個權限過還是沒過
對不對啊
那我們如果每一次檢查的時候呢
都得一二三四啊
這樣子寫這麼多的步驟
那顯然是非常之麻煩啊
ok
那所以呢
我們在這裏啊
就希望哎
像前面的這個函數一樣
對吧
去進行一個封裝
但是封裝的時候呢
又不僅僅是封裝一個
所以呢
我們用一個類去把它管理起來啊
好
那我們這裏呢
是前面學習過一些叫做靜態類
靜態類呢
是不是前面啊
這裏都寫上了個
對不對啊
好
那我們這一邊呢
用的不是這個靜態類啊
用的是這個實力類啊
就是我們在這一邊呢
可以先定義好一個叫做類的基本結構
然後呢
我們在這邊謬出來之後呢
纔是一個真正的
類的實力啊
就用的時候呢
就通過這個實力去調就好了
這裏的語法呢
會跟前面的稍微有那麼一點點不一樣啊
好
這個實力類呢
和這個靜態類啊
其實
在封裝的時候呢
都可以啊
但是呢
他們在調用的時候呢
還是有一點點細微的小差別吧
主要是我們到時候的代碼需要統一一下
像這個實力類
比如說我們
這個這個靜態類
是不是前面加上這個Static就好了啊
對吧
但是我如果要訪問類裏面的其他東西
那麼我們只能是怎麼樣
是不是隻是這個類名再打點
是不是再去訪問其他東西啊
對吧
好那這樣子呢
其實我們對於後期啊
如果說想要改名的話
那其實是比較麻煩的啊
比如說你這裏改了
是不是裏面也得改啊
對不對
好那對於我們的這個實力類呢
哎這裏如果想要去訪問其他的啊
那麼我們只要用到一個關鍵詞叫做例子啊
這個例子呢
就比如說我要訪問自己的這個
那直接這麼寫就好了
那理解吧
對不對啊
就是會簡潔一些吧
當然沒有說絕對誰更好
誰更不好
對不對啊
那我們這邊呢
不同的風格都去學習一下
因爲你出去工作的時候呢
是不是你有可能進入的是不同的團隊
不同的團隊是不是就有可能有不同的風格呀
對吧
好那所以呢
我們這裏就是稍微換一種寫法
但是本質上其實還是一樣啊
就是通過一個類去把他們管理起來啊
好那這個類的基本結構呢
我這裏啊提前已經搭建好啊
大家需要進行三個函數的封裝
一個是檢查是否授權
一個是動態申請
一個是打開設置頁
就是把我們之前的什麼是234整體封裝到一個類裏面
對吧
上面這個封裝不了啊
因爲上面這個需要在專屬的那個配置文件中配啊
但是後面的都是一些常用的代碼集合
對吧
那我們是可以把它封裝起來
好那接下來這一些類呢
我們都統一啊
放到一個文件夾裏面進行管理
放到我們ETS裏面的這個叫做manager
OK就是一些啊
自己的一些管理啊
就是用來管理這個權限的一些類
好
那我們現在呢
先新建一下這樣一個文件吧
這文件呢
我就叫做permission manager.ets
放到指定的一個文件夾裏面
好
更好地去管理起來
我們後期啊
還會封裝好多的這些manager啊
好
我們現在呢
這裏呢
我們提前已經準備好過一個了啊
這個呢
是之前弄那個沉浸式導航裏面有的啊
可能之前大家接觸的版本是那個靜態類的版本啊
這一邊呢
這個改造後的寫法
大家也可以自己去看一下啊
好都差不多啊
那我們接下來呢
在這裏要做一個新的啊
好
那我們先粘貼一下permission manager
好
是否添加
是的
接下來呢
再把這個基本的結構給它選選
對吧
點擊這裏複製代碼
好的
粘貼一下這個代碼
好了
那這裏呢
已經提前準備好了這個結構啊
待會呢
我們就把這一邊啊
進行一個網上封裝就好了啊
啊
這裏呢
我們發現啊
除了sync manager啊
是管理那個
嗯
沉浸式的還有一個呢
是叫做index
eds
這個文件大家猜用來幹嘛的呀
導出他之前有這麼去寫過嗎
沒有是吧
啊
沒有好的
那這裏的話
我告訴大家啊
這樣子寫的一個原因啊
還有我們在平常鴻蒙的項目裏面
哪裏也出現過類似這樣的一些玩法
好的
那這一邊呢
是一個統一的出入口啊
統一的一個出入口
它的一個作用呢
是可以讓我們去管理起來
這些叫做manager會更加的方便
好的
那這一個呢
其實大家並不陌生啊
大家注意看
像這裏是有一個叫做
ability key
大家會發現裏面呢
一個ability key的導入裏面是不是有一二三四四行
是四個東西是不是都是在一行裏面導的呀
對吧
好
那如果我們點進去ability key
哎
這一邊呢
其實是寫了好多好多的一些導入
最後呢
是不是在寫了一個export導出
把他們挨個挨個的進行了導出啊
對吧
挨個挨個的去導出了
好
其實我們這裏的出入口其實也是一樣啊
這個export呢
哎
信號其實就表示的是這樣子
其實就是相當於是他先通過import的
把這些裏面的東西先幹嘛呢
對
先導入一下啊
先導入一下
啊
比如說我們裏面是有一個什麼呀
是有這個東西對不對
啊
有這個東西
這裏我寫了export啊
還有這個東西
好
那他相當於是啊
先導入了一下這個
啊
先導入了一下這個
導入了這個之後呢
再幹嘛呢
哎
對了
再進行了一個叫做導出
那這裏呢
啊
我們會涉及到啊
兩行代碼啊
但但是呢
啊
我們其實啊
在我們的TS語法裏面呢
還有一種鏈接
就是直接export一個信號
信號的一個作用呢
就是你以後啊
後面再去增加一些其他的東西呢
哎
我都統一做那個叫做導出
就導出裏面所有的這些啊
ok
比如說裏面是不是有這個export啊
對吧
那這些呢
全部都可以用這個標識符
用這個叫做信號表示啊
好
所以呢
這裏是我們的一些啊
分開的語法
而這個呢
其實是直接化解後的語法
export信號就相當於是既導入了
然後呢
又進行了一個導出啊
好那這樣子呢
我們把所有的這些管理器
做了一個統一的管理之後呢
那我們接下來
哎
在頁面中用的時候
哎
就可以進行一個化解啊
比方說
我在這裏啊
要用到這個SIM Manager
嗯
去開啓那個澄清室
比方說
我這裏用到那個叫做
about
好
我
我們假設啊
在這裏呢
用到這個澄清室的東西啊
那麼我們直接從manager裏面
去導入
導入一下
哎
那我們這裏呢
就是可以去進行一個叫做開啓什麼的啊
好
那接下來呢
我們在這裏啊
可能還要申請一下這個叫做權限
權限呢
剛剛我們是不是封裝了一個叫做permission manager
沒毛病吧
還是通過這個叫做
manager去導啊
ok
比如說我們這裏呢
調用一下這個叫做
check
隨便調一個吧
調這個吧
好
我先轉用一個空的
check
或者說request都沒問題
好的
那這裏呢
我們就是調兩個管理器
在這裏大家看到上面的這行導入
大家發現就不需要寫好多好多行
是直接用一行
是不是統一管理了起來
能理解嗎
對不對
那這個index呢
哎
我們在這裏呢
再寫一下啊
其實這個這個是什麼呢
就是我們當前的manager模塊的一個叫做
統一的這個出入口啊
好
統一的一個出入口
我們把它管理起來
而且大家有沒有發現我導的時候
是不是那個叫做什麼
斜槓index
是不是好像都是可以省略掉的
對吧
這個是不用寫的啊
好
當然這裏呢
也僅侷限於這個叫做小寫的index啊
這個是依法規定的啊
好
那我們這裏呢
當然這一部分呢
是通過自動導啊
他就可以生產啊
好
那這裏呢
準備工作
我再給大家去理一下啊
我們接下來呢
啊
下午的一個很重要的一個重點呢
就是去封裝好我們的這個權限管理這樣一個類
那這個類呢
我們這一邊啊
是做了一個叫做統一的出入口的一個管理
好
那我們在這邊呢
經過一個叫做export
去打出
然後呢
我們在用的時候呢
哎
就是你同時在頁面中用到多個manager
不要慌
是吧
只需要一行代碼就可以了
這樣子的好處呢
其實啊
管理器維護起來
這些代碼也會更加的方便
也會更加的簡潔
好的
那這個呢
是我們的一個接下來封裝的一個準備工作
那現在呢
也給大家一點時間把這個叫做啊
管理啊
這個叫管
權限管理這個類啊
這個準備工作
大家一起動手做一下啊
開始吧
