0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

鴻蒙OS元服務(wù)開發(fā):【(Stage模型)設(shè)置懸浮窗】

jf_46214456 ? 來源:jf_46214456 ? 作者:jf_46214456 ? 2024-04-03 15:32 ? 次閱讀

一、設(shè)置懸浮窗說明

懸浮窗可以在已有的任務(wù)基礎(chǔ)上,創(chuàng)建一個始終在前臺顯示的窗口。即使創(chuàng)建懸浮窗的任務(wù)退至后臺,懸浮窗仍然可以在前臺顯示。通常懸浮窗位于所有應(yīng)用窗口之上;開發(fā)者可以創(chuàng)建懸浮窗,并對懸浮窗進(jìn)行屬性設(shè)置等操作。

二、開發(fā)步驟

前提條件:創(chuàng)建WindowType.TYPE_FLOAT即懸浮窗類型的窗口,需要申請ohos.permission.SYSTEM_FLOAT_WINDOW權(quán)限。

1.創(chuàng)建懸浮窗。

通過window.createWindow接口創(chuàng)建懸浮窗類型的窗口。

2.對懸浮窗進(jìn)行屬性設(shè)置等操作。

懸浮窗窗口創(chuàng)建成功后,可以改變其大小、位置等,還可以根據(jù)應(yīng)用需要設(shè)置懸浮窗背景色、亮度等屬性。

3.加載顯示懸浮窗的具體內(nèi)容。

通過setUIContent和showWindow接口加載顯示懸浮窗的具體內(nèi)容。

4.銷毀懸浮窗。

當(dāng)不再需要懸浮窗時,可根據(jù)具體實現(xiàn)邏輯,使用destroyWindow接口銷毀懸浮窗。
更多鴻蒙開發(fā)技術(shù)已更新↓

搜狗高速瀏覽器截圖20240326151547.png

import UIAbility from '@ohos.app.ability.UIAbility';
import window from '@ohos.window';

export default class EntryAbility extends UIAbility {
onWindowStageCreate(windowStage) {
// 1.創(chuàng)建懸浮窗。
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.懸浮窗窗口創(chuàng)建成功后,設(shè)置懸浮窗的位置、大小及相關(guān)屬性等。
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.為懸浮窗加載對應(yīng)的目標(biāo)頁面。
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.銷毀懸浮窗。當(dāng)不再需要懸浮窗時,可根據(jù)具體實現(xiàn)邏輯,使用destroy對其進(jìn)行銷毀。
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.');
});
});
}
};


審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 模型
    +關(guān)注

    關(guān)注

    1

    文章

    3032

    瀏覽量

    48367
  • 鴻蒙
    +關(guān)注

    關(guān)注

    56

    文章

    2267

    瀏覽量

    42492
  • 鴻蒙OS
    +關(guān)注

    關(guān)注

    0

    文章

    188

    瀏覽量

    4336
收藏 人收藏

    評論

    相關(guān)推薦

    Stage 模型深入解讀

    設(shè)備的遷移和協(xié)同機制。本文為大家詳細(xì)介紹 Stage 模型。 一、Stage 模型概念 應(yīng)用開發(fā)模型
    的頭像 發(fā)表于 02-18 09:28 ?903次閱讀
    <b class='flag-5'>Stage</b> <b class='flag-5'>模型</b>深入解讀

    鴻蒙OS開發(fā)實例:【手?jǐn)]服務(wù)卡片】

    服務(wù)卡片指導(dǎo)文檔位于“**開發(fā)/應(yīng)用模型/Stage模型開發(fā)指導(dǎo)/
    的頭像 發(fā)表于 03-28 22:11 ?1020次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>OS</b><b class='flag-5'>開發(fā)</b>實例:【手?jǐn)]<b class='flag-5'>服務(wù)</b>卡片】

    鴻蒙OS開發(fā)案例:【Stage模型卡片】

    本示例展示了Stage模型卡片提供方的創(chuàng)建與使用。
    的頭像 發(fā)表于 04-09 17:13 ?829次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>OS</b><b class='flag-5'>開發(fā)</b>案例:【<b class='flag-5'>Stage</b><b class='flag-5'>模型</b>卡片】

    鴻蒙應(yīng)用/服務(wù)開發(fā)-窗口(Stage模型設(shè)置懸浮

    一、設(shè)置懸浮說明 懸浮可以在已有的任務(wù)基礎(chǔ)上,創(chuàng)建一個始終在前臺顯示的窗口。即使創(chuàng)建懸浮
    發(fā)表于 02-04 14:05

    鴻蒙應(yīng)用/服務(wù)開發(fā)-窗口(Stage模型設(shè)置應(yīng)用主窗口

    一、 設(shè)置應(yīng)用主窗口****說明 在Stage模型下,應(yīng)用主窗口由UIAbility創(chuàng)建并維護(hù)生命周期。在UIAbility的onWindowStageCreate回調(diào)中,通過WindowStage
    發(fā)表于 02-05 14:45

    鴻蒙服務(wù)萬能卡片開發(fā)-stage模型和fa模型的卡片區(qū)別

    一、項目類型 Application: 應(yīng)用開發(fā) Atomic Service:原子化服務(wù)開發(fā) 這里選擇Empty Ability模板創(chuàng)建項目。 二、Stage
    發(fā)表于 05-22 14:20

    鴻蒙原生應(yīng)用/服務(wù)開發(fā)-Stage模型能力接口(一)

    從API version 9 開始支持。后續(xù)版本的新增接口,采用上角標(biāo)單獨標(biāo)記接口的起始版本。本模塊接口僅可在Stage模型下使用。二、導(dǎo)入模塊 .import Ability from
    發(fā)表于 12-08 16:34

    鴻蒙原生應(yīng)用/服務(wù)開發(fā)-Stage模型能力接口(四)

    API version 9 開始支持。后續(xù)版本的新增接口,采用上角標(biāo)單獨標(biāo)記接口的起始版本。本模塊接口僅可在Stage模型下使用。 二、導(dǎo)入模塊 import AbilityStage from
    發(fā)表于 12-14 15:39

    鴻蒙原生應(yīng)用/服務(wù)開發(fā)-Stage模型能力接口(五)

    Stage模型下使用 二、 導(dǎo)入模塊 import common from \'@ohos.app.ability.common\'; 三、系統(tǒng)能力 :以下各項對應(yīng)的系統(tǒng)能力均為
    發(fā)表于 12-15 15:11

    鴻蒙原生應(yīng)用/服務(wù)開發(fā)-Stage模型能力接口(六)

    的起始版本。本模塊接口僅可在Stage模型下使用。 二、 導(dǎo)入模塊 import contextConstant from \'@ohos.app.ability.contextConstant\'; 三
    發(fā)表于 12-18 14:40

    鴻蒙原生應(yīng)用/服務(wù)開發(fā)-Stage模型能力接口(八)

    獨標(biāo)記接口的起始版本。本模塊接口僅可在Stage模型下使用。 二、導(dǎo)入模塊 .import ExtensionAbility from
    發(fā)表于 12-20 16:12

    Stage模型深入解讀

    形態(tài)下統(tǒng)一的應(yīng)用組件生命周期,并支持跨設(shè)備的遷移和協(xié)同機制。本文為大家詳細(xì)介紹Stage模型。 一 Stage模型概念 應(yīng)用開發(fā)
    的頭像 發(fā)表于 03-16 13:35 ?774次閱讀

    鴻蒙OS服務(wù)開發(fā):【(Stage模型設(shè)置應(yīng)用主窗口】

    Stage模型下,應(yīng)用主窗口由UIAbility創(chuàng)建并維護(hù)生命周期。在UIAbility的onWindowStageCreate回調(diào)中,通過WindowStage獲取應(yīng)用主窗口,即可對其進(jìn)行屬性設(shè)置等操作。還可以在應(yīng)用配置文件
    的頭像 發(fā)表于 04-03 18:28 ?1086次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>OS</b><b class='flag-5'>元</b><b class='flag-5'>服務(wù)</b><b class='flag-5'>開發(fā)</b>:【(<b class='flag-5'>Stage</b><b class='flag-5'>模型</b>)<b class='flag-5'>設(shè)置</b>應(yīng)用主窗口】

    鴻蒙實戰(zhàn)開發(fā):【實現(xiàn)應(yīng)用懸浮

    如果你要做的是系統(tǒng)級別的懸浮,就需要判斷是否具備懸浮權(quán)限。然而這又不是一個標(biāo)準(zhǔn)的動態(tài)權(quán)限,你需要兼容各種奇葩機型的懸浮
    的頭像 發(fā)表于 04-03 22:18 ?246次閱讀
    <b class='flag-5'>鴻蒙</b>實戰(zhàn)<b class='flag-5'>開發(fā)</b>:【實現(xiàn)應(yīng)用<b class='flag-5'>懸浮</b><b class='flag-5'>窗</b>】

    鴻蒙開發(fā)Ability Kit程序框架服務(wù):FA模型切換Stage模型概述

    本文介紹如何將一個FA模型開發(fā)的聲明式范式應(yīng)用切換到Stage模型
    的頭像 發(fā)表于 06-26 14:40 ?238次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)</b>Ability Kit程序框架<b class='flag-5'>服務(wù)</b>:FA<b class='flag-5'>模型</b>切換<b class='flag-5'>Stage</b><b class='flag-5'>模型</b>概述