Intent
創(chuàng)新互聯(lián)2013年開創(chuàng)至今,先為信陽等服務(wù)建站,信陽等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為信陽企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。
Intent是對象之間傳遞信息的載體。當(dāng)一個Ability需要啟動另一個Ability時,或者一個AbilitySlice需要導(dǎo)航到另一個AbilitySlice時,可以通過Intent指定啟動的目標(biāo)同時攜帶相關(guān)數(shù)據(jù)。Intent的構(gòu)成元素包括Operation與Parameters。
Intent的構(gòu)成元素
Operation
Action: 表示動作,通常使用系統(tǒng)預(yù)置Action,應(yīng)用也可以自定義Action。例如IntentConstants.ACTION_HOME表示返回桌面動作。
Entity:表示類別,通常使用系統(tǒng)預(yù)置Entity,應(yīng)用也可以自定義Entity。例如Intent.ENTITY_HOME表示在桌面顯示圖標(biāo)。
Uri:表示Uri描述。如果在Intent中指定了Uri,則Intent將匹配指定的Uri信息,包括scheme, schemeSpecificPart, authority和path信息。
Flags:表示處理Intent的方式。例如Intent.FLAG_ABILITY_CONTINUATION標(biāo)記在本地的一個Ability是否可以遷移到遠(yuǎn)端設(shè)備繼續(xù)運行。
BundleName:表示包描述。如果在Intent中同時指定了BundleName和AbilityName,則Intent可以直接匹配到指定的Ability。
AbilityName: 表示待啟動的Ability名稱。如果在Intent中同時指定了BundleName和AbilityName,則Intent可以直接匹配到指定的Ability。
DeviceId: 表示運行指定Ability的設(shè)備ID。
當(dāng)Intent用于發(fā)起請求時,根據(jù)指定元素的不同,分為兩種類型:
如果同時指定了BundleName與AbilityName,則根據(jù)Ability的全稱(例如,“com.demoapp.FooAbility”)來直接啟動應(yīng)用。
如果未同時指定BundleName和AbilityName,則根據(jù)Operation中的其他屬性來啟動應(yīng)用。
開發(fā)前可以了解下鴻蒙: [鴻蒙開發(fā) 序]華為鴻蒙操作系統(tǒng)(HarmonyOS)簡介及開發(fā)環(huán)境搭建
開發(fā)前的準(zhǔn)備:「鴻蒙開發(fā) 1」華為鴻蒙應(yīng)用集成開發(fā)環(huán)境DevEco Studio安裝和設(shè)置
了解鴻蒙應(yīng)用開發(fā)的基本開發(fā)流程:「鴻蒙開發(fā) 2」第一個華為鴻蒙(HarmonyOS)應(yīng)用程序(App)
本章目標(biāo):
1 了解華為鴻蒙應(yīng)用開發(fā)的可視化(低代碼)方式
2 通過構(gòu)建一個簡單的具有頁面跳轉(zhuǎn)功能的應(yīng)用
低代碼開發(fā)方式,即通過可視化界面開發(fā)方式快速構(gòu)建布局、編輯UI界面,可有效降低用戶的上手成本并提升用戶構(gòu)建UI界面的效率。
1 打開DevEco Studio,創(chuàng)建一個新工程,選擇支持Phone / Tablet / Wearable(手機(jī) / 平板 / s可穿戴)的模板,我們在此直接選擇Empty Ability
Project name工程名稱填SuperVisual
Development mode開發(fā)方式選擇Super Visual
其它的可以使用默認(rèn)設(shè)置,點擊完成,進(jìn)入編輯界面
1 在Project(項目)窗口,刪除工程運行默認(rèn)的入口文件夾:“entry src main js default pages index”文件夾
2 在Project窗口,選擇工程中的“entry src main js default pages”,單擊鼠標(biāo)右鍵,選擇“New JS Visual”
JS visual name填first,點擊完成,進(jìn)入編輯界面
創(chuàng)建完成后,可以看到“entry src main supervisual default pages page page.visual”的文件目錄結(jié)構(gòu)
3 第一個頁面內(nèi)有一個容器、文本和一個按鈕,通過Div、Text和Button組件來實現(xiàn)
(1)分別選中first.visual畫面中的Text、Div組件,單擊鼠標(biāo)右鍵,選擇Delete刪除
(2)選中UI Control中的Div組件,將其拖至畫布
點擊右側(cè)屬性樣式欄中的通用樣式圖標(biāo)(General),設(shè)置Div組件的高度Height為100%,使其占滿屏幕
點擊右側(cè)屬性樣式欄中的樣式圖標(biāo)(Flex),設(shè)置Div組件的FlexDirection樣式為column,使Div的主軸垂直;設(shè)置Div組件的JustifyContent樣式為center,使得其子組件在主軸上居中顯示;設(shè)置Div組件的AlignItems樣式為center,使得其子組件在交叉軸上居中顯示
(3)選中UI Control中的Text組件,將其拖至Div組件的中央?yún)^(qū)域
點擊右側(cè)屬性樣式欄中的屬性圖標(biāo)(Properties),設(shè)置Text組件的Content屬性為 “ Hello World ”
點擊右側(cè)屬性樣式欄中的通用樣式圖標(biāo)(General),設(shè)置Text組件的寬(width)為100%,高(height)為100px
點擊右側(cè)屬性樣式欄中的樣式圖標(biāo)(Feature),設(shè)置組件的FontSize樣式為60px,使得其文字放大;設(shè)置組件的TextAlign樣式為center,使得組件文字居中顯示
(4)選中UI Control中的Button組件,將其拖至Text組件下面
點擊右側(cè)屬性樣式欄中的屬性圖標(biāo)(Properties),設(shè)置Button組件的Value屬性為 “ Next ”,
點擊右側(cè)屬性樣式欄中的通用樣式圖標(biāo)(General),設(shè)置按的寬(width)為40%,高(height)為60px
點擊右側(cè)屬性樣式欄中的樣式圖標(biāo)(Feature),設(shè)置組件的FontSize樣式為40px
至此,第一個頁面創(chuàng)建完成
我們可以在預(yù)覽窗口中看效果,點擊右側(cè)邊欄的Preview打開預(yù)覽窗口
1 在Project窗口,選擇工程中的“entry src main js default pages”,單擊鼠標(biāo)右鍵,選擇“New JS Visual”
Visual配置界面,JS visual name填second,回車(Enter鍵)或者點擊完成,進(jìn)入編輯界面
2 第二個頁面中有一個容器和文本,通過Div、Text組件實現(xiàn),現(xiàn)在編輯器已經(jīng)為我們創(chuàng)建好了,我們就來修改下它們的屬性(你也可以刪除原有的自己創(chuàng)建,具體步驟參考本章第二節(jié)“二 創(chuàng)建第一個頁面”)。
選中Text組件,點擊右側(cè)屬性樣式欄中的屬性圖標(biāo)(Properties),設(shè)置Text組件的Content屬性為 “ Hi,I'm always here. ”
點擊右側(cè)屬性樣式欄中的通用圖標(biāo)(General),設(shè)置組件的寬(width)為100%,高為60px
點擊右側(cè)屬性樣式欄中的樣式圖標(biāo)(Feature),設(shè)置組件的FontSize樣式為36px,TextAlign樣式為center
這樣我們的第二個頁面創(chuàng)建成功了
1 在Project窗口,打開工程中的“entry src main js default pages first first.js”, 導(dǎo)入router模塊,頁面路由router根據(jù)頁面的uri來找到目標(biāo)頁面,從而實現(xiàn)跳轉(zhuǎn)。示例代碼如下:
2 打開或者切換到first.visual頁面,選中畫布上的Button組件,點擊右側(cè)屬性樣式欄中的事件圖標(biāo)(Events),鼠標(biāo)點擊Click事件的輸入框,選擇launch事件
3 在預(yù)覽窗口中查看項目效果,點擊Next按鈕后發(fā)現(xiàn)我們的頁面成功跳轉(zhuǎn)了。
到此,本章的目標(biāo)就完成了。
一、如果圖片為【http】開頭的,則需要打開:
"deviceConfig": {
"default": {
"network": {
"cleartextTraffic": true
}
}
}
鴻蒙的默認(rèn)是https訪問模式
二、加載圖片,這里以O(shè)KHttp3為例:
public static void setImages(Context context, Image imageView, String url) {
Request request =new Request.Builder().url(url).get().build();
new Thread(() - {
OkHttpClient okHttpClient =new OkHttpClient();
? ?try {
//異步網(wǎng)絡(luò)請求
? ? ? ?Response execute = okHttpClient.newCall(request).execute();
? ? ? ?//獲取流
? ? ? ?InputStream inputStream = execute.body().byteStream();
? ? ? ?//利用鴻蒙api將流解碼為圖片源
? ? ? ?ImageSource imageSource = ImageSource.create(inputStream, new ImageSource.SourceOptions());
? ? ? ?ImageSource.DecodingOptions decodingOptions =new ImageSource.DecodingOptions();
? ? ? ?decodingOptions.desiredPixelFormat = PixelFormat.ARGB_8888;
? ? ? ?//根據(jù)圖片源創(chuàng)建位圖
? ? ? ?PixelMap pixelMap = imageSource.createPixelmap(decodingOptions);
? ? ? ?//展示到組件上
? ? ? ?context.getUITaskDispatcher().delayDispatch(new Runnable() {
@Override
? ? ? ? ? ?public void run() {
imageView.setPixelMap(pixelMap);
? ? ? ? ? ? ? ?//釋放位圖
? ? ? ? ? ? ? ?pixelMap.release();
? ? ? ? ? ?}
}, 0);
? ?}catch (IOException e) {
LogUtil.iYx(" ----- " + e.getMessage());
? ? ? ?e.printStackTrace();
? ?}
}).start();
}
官方用例中也有一種,附上鏈接:
參考 鴻蒙官方文檔(點擊傳送門) ,做一下流程梳理簡化,及踩坑記錄
華為將真機(jī)調(diào)試分成物理真機(jī)和遠(yuǎn)程真機(jī)。這里說的都是物理真機(jī)(手機(jī)、平板)。鴻蒙真機(jī)調(diào)試巨復(fù)雜,不像Android那么容易方便。
貼一下官方的調(diào)試流程圖:
總結(jié)一下:
上面這個流程可以忽略,沒講到重點。真機(jī)調(diào)試是需要在 ? AppGallery Connect 中創(chuàng)建應(yīng)用的,調(diào)試應(yīng)用需要的cer和p7b文件是從這里生成的。
先決條件:
1. 鴻蒙手機(jī)通過USB連接電腦,并開啟USB調(diào)試。
2. 一個華為開發(fā)者賬號,實名認(rèn)證
3. APP開發(fā)工具DevEco-Studio
關(guān)鍵流程:
1. Studio創(chuàng)建應(yīng)用
2. 如果未登錄過,F(xiàn)ile Project Structure Project Signing Configs簽名配置頁,點擊“Sign In”
3. AppGallery創(chuàng)建應(yīng)用(包名和Studio創(chuàng)建的一樣)
4. 官方文檔到這在簽名配置頁就點Try Again可以自動簽名,我試了不行,以下全是手動
5. Studio中Build Generate key and CSR? ?生成p12和csr文件
6. 獲取手機(jī)udid,命令行hdc shell bm get -udid(下一步設(shè)備管理要用)
7. AppGallery主頁 用戶與訪問 左側(cè)設(shè)備管理添加udid的設(shè)備(生成p7b時要用)
8. AppGallery主頁 用戶與訪問 左側(cè)證書管理生成cer文件(生成p7b和簽名配置要用)
9. AppGallery主頁 我的項目 左側(cè)HarmonyOS應(yīng)用 HAP provision profile,生成p7b文件
10. 最后在簽名配置頁配好 p12、p7b、cer等參數(shù),運行鴻蒙應(yīng)用到真機(jī)就行了
鴻蒙開發(fā)者模式打開的方法如下:
工具/原料:華為mate40、HarmonyOs2.0、本地設(shè)置。
1、進(jìn)去鴻蒙系統(tǒng)版手機(jī)設(shè)置,然后點擊關(guān)于手機(jī)。
2、進(jìn)去之后,連續(xù)點擊鴻蒙系統(tǒng)版本號,開啟開發(fā)者模式。
3、進(jìn)去開發(fā)者模式之后,點擊系統(tǒng)和更新。
4、然后點擊開發(fā)者選項。
5、點擊開啟開發(fā)者選項,就成功打開鴻蒙系統(tǒng)開發(fā)者選項了。
鴻蒙系統(tǒng)許多小伙伴們都早已使用好長時間了,在使用的整個過程中如果我們碰到了一些系統(tǒng)錯誤我們都是可以提交錯誤報告的,許多小伙伴們使用鴻蒙系統(tǒng)的過程中想要知道如何提交錯誤報告,我為各位梳理了提交錯誤報告的步驟。
鴻蒙系統(tǒng)提交錯誤報告教程
1、第一步打開手機(jī),然后點擊設(shè)置
2、第二步進(jìn)去系統(tǒng)設(shè)置之后,然后點擊系統(tǒng)和更新
3、第三步進(jìn)去之后,然后點擊開發(fā)人員選項
4、第四步進(jìn)去鴻蒙系統(tǒng)開發(fā)人員選項界面之后,然后點擊提交錯誤報告
5、第五步進(jìn)去之后,選擇報告方式,點擊提交,鴻蒙系統(tǒng)就成功提交錯誤報告了,根據(jù)需要使用
.