1指定实例模式,允许打开已存在的窗口,或者新增
1{ 2 "name": "DocumentAbility", 3 "srcEntry": "./ets/documentability/DocumentAbility.ets", 4 "description": "$string:DocumentAbility_desc", 5 "icon": "$media:layered_image", 6 "label": "$string:DocumentAbility_label", 7 'launchType': "specified", 8 "startWindowIcon": "$media:startIcon", 9 "startWindowBackground": "$color:start_window_background" 10}
1import { common, Want } from '@kit.AbilityKit'; 2 3@Entry 4@Component 5struct Page06_Document { 6 @State message: string = '备忘录页面'; 7 @State docs: Array<number> = [] 8 @State index: number = 1 9 10 build() { 11 Column() { 12 Text(this.message) 13 .id('Page06_DocumentHelloWorld') 14 .fontSize($r('app.float.page_text_font_size')) 15 .fontWeight(FontWeight.Bold) 16 .alignRules({ 17 center: { anchor: '__container__', align: VerticalAlign.Center }, 18 middle: { anchor: '__container__', align: HorizontalAlign.Center } 19 }) 20 .onClick(() => { 21 this.message = 'Welcome'; 22 }) 23 24 Button('新建备忘录').onClick((event: ClickEvent) => { 25 this.docs.push(this.index) 26 let context = getContext(this) as common.UIAbilityContext 27 let want: Want = { 28 deviceId: '', 29 bundleName: 'com.example.snailmall', 30 abilityName: 'DocumentAbility' 31 } 32 33 context.startAbility(want, (err) => { 34 if (err) { 35 console.log('startAbility DocumentAbility failed' + err.message) 36 } 37 } 38 39 ) 40 }) 41 42 Column() { 43 List() { 44 ForEach(this.docs, (item: number, index: number) => { 45 ListItem() { 46 Row() { 47 Image($r('app.media.startIcon')) 48 .width(30) 49 Text('备忘录:' + item) 50 } 51 } 52 }, (item: number) => item.toString()) 53 } 54 } 55 } 56 .height('100%') 57 .width('100%') 58 } 59}
1@Entry 2@Component 3struct Page06_Edit { 4 @State message: string = '编辑备忘录'; 5 6 build() { 7 Column() { 8 Text(this.message) 9 .id('Page06_EditHelloWorld') 10 .fontSize($r('app.float.page_text_font_size')) 11 .fontWeight(FontWeight.Bold) 12 .alignRules({ 13 center: { anchor: '__container__', align: VerticalAlign.Center }, 14 middle: { anchor: '__container__', align: HorizontalAlign.Center } 15 }) 16 .onClick(() => { 17 this.message = 'Welcome'; 18 }) 19 20 TextInput({ 21 placeholder: '请输入编辑内容' 22 }) 23 } 24 .height('100%') 25 .width('100%') 26 } 27}
module.json5
1{ 2 "module": { 3 "name": "default", 4 "type": "entry", 5 "description": "$string:module_desc", 6 'srcEntry': './ets/myabilitystage/MyAbilityStage.ets', 7....
1import { common, Want } from '@kit.AbilityKit'; 2 3@Entry 4@Component 5struct Page06_Document { 6 @State message: string = '备忘录页面'; 7 @State docs: Array<number> = [] 8 @State index: number = 1 9 10 build() { 11 Column() { 12 Text(this.message) 13 .id('Page06_DocumentHelloWorld') 14 .fontSize($r('app.float.page_text_font_size')) 15 .fontWeight(FontWeight.Bold) 16 .alignRules({ 17 center: { anchor: '__container__', align: VerticalAlign.Center }, 18 middle: { anchor: '__container__', align: HorizontalAlign.Center } 19 }) 20 .onClick(() => { 21 this.message = 'Welcome'; 22 }) 23 24 Button('新建备忘录').onClick((event: ClickEvent) => { 25 this.docs.push(this.index) 26 let context = getContext(this) as common.UIAbilityContext 27 let want: Want = { 28 deviceId: '', 29 bundleName: 'com.example.snailmall', 30 abilityName: 'DocumentAbility', 31 parameters: { 32 instanceKey: `idx_${this.index++}` 33 } 34 } 35 36 context.startAbility(want, (err) => { 37 if (err) { 38 console.log('startAbility DocumentAbility failed' + err.message) 39 } 40 } 41 42 ) 43 }) 44 45 Column() { 46 List() { 47 ForEach(this.docs, (item: number, index: number) => { 48 ListItem() { 49 Row() { 50 Image($r('app.media.startIcon')) 51 .width(30) 52 Text('备忘录:' + item) 53 .onClick(() => { 54 let context = getContext(this) as common.UIAbilityContext 55 let want: Want = { 56 deviceId: '', 57 bundleName: 'com.example.snailmall', 58 abilityName: 'DocumentAbility', 59 parameters: { 60 instanceKey: `idx_${index + 1}` 61 } 62 } 63 context.startAbility(want, (err) => { 64 if (err) { 65 console.log('startAbility DocumentAbility failed' + err.message) 66 } 67 }) 68 }) 69 } 70 } 71 }, (item: number) => item.toString()) 72 } 73 } 74 } 75 .height('100%') 76 .width('100%') 77 } 78}
1@Entry 2@Component 3struct Page06_Edit { 4 @State message: string = '编辑备忘录'; 5 6 build() { 7 Column() { 8 Text(this.message) 9 .id('Page06_EditHelloWorld') 10 .fontSize($r('app.float.page_text_font_size')) 11 .fontWeight(FontWeight.Bold) 12 .alignRules({ 13 center: { anchor: '__container__', align: VerticalAlign.Center }, 14 middle: { anchor: '__container__', align: HorizontalAlign.Center } 15 }) 16 .onClick(() => { 17 this.message = 'Welcome'; 18 }) 19 20 TextInput({ 21 placeholder: '请输入编辑内容' 22 }) 23 } 24 .height('100%') 25 .width('100%') 26 } 27}
1import { AbilityStage, Want } from "@kit.AbilityKit"; 2 3export default class MyAbilityStage extends AbilityStage { 4 // 先执行onCreate,再加载UIAbility 5 onCreate(): void { 6 // 首次加载,module初始化 7 } 8 9 onDestroy(): void { 10 console.log('MyAbilityStage onDestroy') 11 } 12 13 onAcceptWant(want: Want): string { 14 // 仅在specified模式生效 15 if (want.abilityName === 'DocumentAbility') { 16 // idx_1, idx_2 17 return `${want?.parameters?.instanceKey}` 18 } 19 return '' 20 } 21}
存在111窗口,则直接打开
Copyright ©2010-2022 比特日记 All Rights Reserved.
Powered By 可尔物语