一、設置懸浮窗說明
懸浮窗可以在已有的任務基礎上,創建一個始終在前臺顯示的窗口。即使創建懸浮窗的任務退至后臺,懸浮窗仍然可以在前臺顯示。通常懸浮窗位于所有應用窗口之上;開發者可以創建懸浮窗,并對懸浮窗進行屬性設置等操作。
二、開發步驟
前提條件:創建WindowType.TYPE_FLOAT即懸浮窗類型的窗口,需要申請ohos.permission.SYSTEM_FLOAT_WINDOW權限。
1.創建懸浮窗。
通過window.createWindow接口創建懸浮窗類型的窗口。
2.對懸浮窗進行屬性設置等操作。
懸浮窗窗口創建成功后,可以改變其大小、位置等,還可以根據應用需要設置懸浮窗背景色、亮度等屬性。
3.加載顯示懸浮窗的具體內容。
通過setUIContent和showWindow接口加載顯示懸浮窗的具體內容。
4.銷毀懸浮窗。
當不再需要懸浮窗時,可根據具體實現邏輯,使用destroyWindow接口銷毀懸浮窗。
更多鴻蒙開發技術已更新↓
import UIAbility from '@ohos.app.ability.UIAbility';
import window from '@ohos.window';
export default class EntryAbility extends UIAbility {
onWindowStageCreate(windowStage) {
// 1.創建懸浮窗。
let windowClass = null;
let config = {name: "floatWindow", windowType: window.WindowType.TYPE_FLOAT, ctx: this.context};
window.createWindow(config, (err, data) = > {
if (err.code) {
console.error('Failed to create the floatWindow. Cause: ' + JSON.stringify(err));
return;
}
console.info('Succeeded in creating the floatWindow. Data: ' + JSON.stringify(data));
windowClass = data;
// 2.懸浮窗窗口創建成功后,設置懸浮窗的位置、大小及相關屬性等。
windowClass.moveWindowTo(300, 300, (err) = > {
if (err.code) {
console.error('Failed to move the window. Cause:' + JSON.stringify(err));
return;
}
console.info('Succeeded in moving the window.');
});
windowClass.resize(500, 500, (err) = > {
if (err.code) {
console.error('Failed to change the window size. Cause:' + JSON.stringify(err));
return;
}
console.info('Succeeded in changing the window size.');
});
// 3.為懸浮窗加載對應的目標頁面。
windowClass.setUIContent("pages/page4", (err) = > {
if (err.code) {
console.error('Failed to load the content. Cause:' + JSON.stringify(err));
return;
}
console.info('Succeeded in loading the content.');
// 3.顯示懸浮窗。
windowClass.showWindow((err) = > {
if (err.code) {
console.error('Failed to show the window. Cause: ' + JSON.stringify(err));
return;
}
console.info('Succeeded in showing the window.');
});
});
// 4.銷毀懸浮窗。當不再需要懸浮窗時,可根據具體實現邏輯,使用destroy對其進行銷毀。
windowClass.destroyWindow((err) = > {
if (err.code) {
console.error('Failed to destroy the window. Cause: ' + JSON.stringify(err));
return;
}
console.info('Succeeded in destroying the window.');
});
});
}
};
審核編輯 黃宇
-
模型
+關注
關注
1文章
3226瀏覽量
48809 -
鴻蒙
+關注
關注
57文章
2339瀏覽量
42805 -
鴻蒙OS
+關注
關注
0文章
188瀏覽量
4383
發布評論請先 登錄
相關推薦
評論