diff --git a/zh-cn/application-dev/IDL/idl-guidelines.md b/zh-cn/application-dev/IDL/idl-guidelines.md index c9c92172d7154c7e24d48256b1d8577aafaf4577..f2f89c45fe75c039447ce53593ccaa98b0c51dcd 100644 --- a/zh-cn/application-dev/IDL/idl-guidelines.md +++ b/zh-cn/application-dev/IDL/idl-guidelines.md @@ -160,7 +160,7 @@ OpenHarmony IDL容器数据类型与Ts数据类型、C++数据类型的对应关 若不存在,可对应版本前往[docs仓版本目录](../../release-notes)下载SDK包,以[3.2Beta3版本](../../release-notes/OpenHarmony-v3.2-beta3.md)为例,可通过镜像站点获取。 -关于如何替换DevEco Studio的SDK包具体操作,参考[full-SDK替换指南](../quick-start/full-sdk-compile-guide.md)中的替换方法。 +关于如何替换DevEco Studio的SDK包具体操作,参考[full-SDK替换指南](../faqs/full-sdk-compile-guide.md)中的替换方法。 得到idl工具的可执行文件后,根据具体场景进行后续开发步骤。 diff --git a/zh-cn/application-dev/application-models/serviceextensionability.md b/zh-cn/application-dev/application-models/serviceextensionability.md index a94629215d8c537f94f107101db9effa4eb93dee..1845ff4f140437db44b27c7b4b0eb553322c8761 100644 --- a/zh-cn/application-dev/application-models/serviceextensionability.md +++ b/zh-cn/application-dev/application-models/serviceextensionability.md @@ -67,7 +67,7 @@ 只有系统应用才允许实现ServiceExtensionAbility,因此开发者在开发之前需做如下准备: -- **替换Full SDK**:ServiceExtensionAbility相关接口都被标记为System-API,默认对开发者隐藏,因此需要手动从镜像站点获取Full SDK,并在DevEco Studio中替换,具体操作可参考[替换指南](../quick-start/full-sdk-switch-guide.md)。 +- **替换Full SDK**:ServiceExtensionAbility相关接口都被标记为System-API,默认对开发者隐藏,因此需要手动从镜像站点获取Full SDK,并在DevEco Studio中替换,具体操作可参考[替换指南](../faqs/full-sdk-switch-guide.md)。 - **申请AllowAppUsePrivilegeExtension特权**:只有具有AllowAppUsePrivilegeExtension特权的应用才允许开发ServiceExtensionAbility,具体申请方式可参考[应用特权配置指南](../../device-dev/subsystems/subsys-app-privilege-config-guide.md)。 diff --git a/zh-cn/application-dev/application-models/windowextensionability.md b/zh-cn/application-dev/application-models/windowextensionability.md index d97632ebf035af0a936df9c3544335a5518a0135..2d0cd23f2fe5622afa472bdf60248e14ff61836c 100644 --- a/zh-cn/application-dev/application-models/windowextensionability.md +++ b/zh-cn/application-dev/application-models/windowextensionability.md @@ -11,7 +11,7 @@ WindowExtensionAbility必须和[AbilityComponent](../reference/arkui-ts/ts-conta > **说明:** > -> 本接口为系统接口,如果三方开发者想要实现应用进行跨应用的界面拉起和嵌入,请参考[full-SDK替换指南](../../application-dev/quick-start/full-sdk-switch-guide.md)将SDK替换为full-SDK。 +> 本接口为系统接口,如果三方开发者想要实现应用进行跨应用的界面拉起和嵌入,请参考[full-SDK替换指南](../faqs/full-sdk-switch-guide.md)将SDK替换为full-SDK。 > diff --git a/zh-cn/application-dev/faqs/Readme-CN.md b/zh-cn/application-dev/faqs/Readme-CN.md index fa5c1943ee2b736011b685d53b6515f596d61c53..366f8f2131c0aa9ece85717e33a82ea8afeec735 100644 --- a/zh-cn/application-dev/faqs/Readme-CN.md +++ b/zh-cn/application-dev/faqs/Readme-CN.md @@ -1,7 +1,10 @@ # 常见问题 +- [如何编译full-SDK](full-sdk-compile-guide.md) +- [如何替换full-SDK](full-sdk-switch-guide.md) - [Ability开发常见问题](faqs-ability.md) - [ArkUI框架开发常见问题](faqs-arkui.md) +- [ArkUI开发框架开发-ArkTS语法常见问题](faqs-arkui-arkts.md) - [Web开发常见问题](faqs-arkui-web.md) - [包管理开发常见问题](faqs-bundle-management.md) - [资源管理开发常见问题](faqs-globalization.md) @@ -19,4 +22,5 @@ - [启动恢复开发常见问题](faqs-startup.md) - [分布式DeviceProfrofile开发常见问题](faqs-distributed-device-profile.md) - [SDK使用常见问题](faqs-sdk.md) -- [三四方库使用常见问题](faqs-third-fourth-party-library.md) +- [语言编译运行时常见问题](faqs-compiler-runtime.md) +- [三四方库使用常见问题](faqs-third-fourth-party-library.md) \ No newline at end of file diff --git a/zh-cn/application-dev/faqs/faqs-ability-access-control.md b/zh-cn/application-dev/faqs/faqs-ability-access-control.md index 55e422cb0812eacc8b9236cfcfda9a780500c5c0..938a3a05ac3801542009d664f6051aea21ddf8d7 100644 --- a/zh-cn/application-dev/faqs/faqs-ability-access-control.md +++ b/zh-cn/application-dev/faqs/faqs-ability-access-control.md @@ -5,3 +5,47 @@ 适用于:OpenHarmony 3.1 Beta5 API 9 在系统设置修改了应用权限,三方应用无法监听到权限变化的。 + +## 应用申请LOCATION位置信息权限为什么没有弹窗 + +适用于:OpenHarmny 3.2 Release API 9 + +使用API version 9以下版本的SDK开发的应用,可以直接申请ohos.permission.LOCATION权限。 +使用API version 9及API version 9以上版本的SDK开发的应用,需要先申请权限ohos.permission.APPROXIMATELY\_LOCATION,才可申请此权限。 + +**参考链接** + +[应用权限列表](../security/permission-list.md#ohospermissionlocation) + +## 向用户申请授予权限但被用户拒绝后,如何处理才能避免应用二次进入时崩溃 + +适用于:OpenHarmony SDK 3.2 Beta5 + +**可能原因** + +- 业务功能所需要的权限被用户拒绝后不再弹窗请求权限而是直接返回结果。 +- 若开发者在请求权限后未进行相关判断,会导致应用直接访问受权限管控的目标对象,此时应用可能会因为没有对应权限而被拒绝访问,从而导致应用意外终止。 + +**解决措施** + +1. 应用在调用受权限保护的接口前,需要先校验应用是否已经获取该权限。如果校验结果显示,应用已经获取了该权限,那么应用可以直接访问该目标接口,否则,应用需要通过动态弹框先申请用户授权,并根据授权结果进行相应处理。 + +2. 如果用户拒绝授予某个权限时,需要确保与此权限无关的其他业务功能应能正常使用,不能影响应用的正常注册或登录。 + +3. 当用户主动触发使用此业务功能或为实现业务功能所必须时,应用程序可通过界面内文字引导,让用户主动到“系统设置”中授权。 + +**参考链接** + +[访问控制(权限)开发概述](../security/accesstoken-overview.md) + +## module.json5配置文件中extensionAbilities和requestPermissions的权限声明有何区别 + +适用于:OpenHarmony SDK 3.2 Beta5 + +- requestPermissions:标识当前应用运行时需向系统申请的权限集合,应用申请的权限只有在此处配置的才会生效。 +- extensionAbilitie.permissions:标识当前ExtensionAbility组件自定义的权限信息,表示当其他应用访问该ExtensionAbility时,需要申请相应的权限信息,仅做权限校验使用。 + +**参考链接** + +[module.json5配置文件](../quick-start/module-configuration-file.md) + diff --git a/zh-cn/application-dev/faqs/faqs-ability.md b/zh-cn/application-dev/faqs/faqs-ability.md index 717b7bc6a432c221e54fca784e986a1adbffc940..d58b91d2de259706121f5f491d7f210b33766c47 100644 --- a/zh-cn/application-dev/faqs/faqs-ability.md +++ b/zh-cn/application-dev/faqs/faqs-ability.md @@ -254,7 +254,7 @@ DevEco Studio默认下载是public-sdk。 **解决措施** -三方应用不支持开发ServiceExtensionAbility和DataShareExtensionAbility。若开发系统应用,请[下载full-sdk](../quick-start/full-sdk-switch-guide.md)。 +三方应用不支持开发ServiceExtensionAbility和DataShareExtensionAbility。若开发系统应用,请[下载full-sdk](../faqs/full-sdk-switch-guide.md)。 ## 如何获取应用级别的temp路径和files路径 @@ -268,6 +268,56 @@ DevEco Studio默认下载是public-sdk。 [获取应用开发路径](../application-models/application-context-stage.md#获取应用开发路径) +## terminateSelf方法销毁当前应用之后并没有在后台任务列表中删除 + +适用于:OpenHarmony 3.2 Beta5 + +**解决措施** + +在当前应用对应UIAbility的module.json5配置文件中,配置abilities标签的removeMissionAfterTerminate字段,设置为true即为销毁应用的同时删除应用快照记录,缺省值为false。 + +**参考链接** + +[module.json5配置文件](../quick-start/module-configuration-file.md) + +## Stage模型下开发的应用如何拉起 FA 模型开发的应用 + +适用于:OpenHarmony 3.2 Beta 5,API 9 + +**问题现象** + +已在stage模型下的应用如何拉起FA模型 + +**解决措施** + +该功能目前已支持,具体实现可参考如下代码: + +示例: + +``` +let want = { + deviceId: "", // deviceId为空表示本设备 + bundleName: "com.example.myapplication", + abilityName: "EntryAbility", + moduleName: "Module1", // moduleName非必选 + parameters: { // 自定义信息 + }, +} +// context为意图拉起的FA模型的AbilityContext +context.startAbility(want).then(() => { + ... +}).catch((err) => { + ... +}) +``` + +## 原子化服务是否可以全程使用js实现 + +适用于:Openharmony 3.2 Beta5 API 9 + +**解决措施** + +目前新建的卡片的目录结构都是css+hml+json,不能完全靠js实现,事件的触发和参数的传递都可以在json文件里面处理。 ## FA卡片上架后在用户的服务中心展示时可否触发生命周期,从而实现用户没有打开过FA应用的情况下获取到用户的登录信息 @@ -279,7 +329,44 @@ FA卡片的生命周期以及信息显示 **解决措施** -服务卡片在添加卡片后就触发了oncreat()生命周期,在不启用app的情况下也可以显示相关的用户信息-静默登录,但服务卡片目前要在app安装之后手动添加。 +服务卡片在添加卡片后就触发了oncreat\(\)生命周期,在不启用app的情况下也可以显示相关的用户信息-静默登录,但服务卡片目前要在app安装之后手动添加。 + +## JS/ArkTS跳转到其他应用时报错“\[c4d4d3492eb8531, 0, 0\] ContextDeal::startAbility fetchAbilities failed” + +适用于:OpenHarmony 3.2 Beta5 API 9 + +**问题现象** + +JS/ArkTS跳转时, startAbility报错 + +**解决措施** + +一般用startAbility,实现如下: + +``` +import featureAbility from '@ohos.ability.featureAbility' +function onStartRemoteAbility() { +console.info('onStartRemoteAbility begin'); +let params; +let wantValue = { + bundleName: 'ohos.samples.etsDemo', + abilityName: 'ohos.samples.etsDemo.RemoteAbility', + deviceId: getRemoteDeviceId(), + parameters: params +}; +console.info('onStartRemoteAbility want=' + JSON.stringify(wantValue)); +featureAbility.startAbility({ + want: wantValue +}).then((data) => { +console.info('onStartRemoteAbility finished, ' + JSON.stringify(data)); +}); +console.info('onStartRemoteAbility end'); +} +``` + +**参考链接** + +可参考[启动本地PageAbility](../application-models/start-local-pageability.md)。 ## 如何通过卡片点击实现业务登录场景 @@ -332,30 +419,28 @@ this.context.startAbility( **代码示例** ``` -import UIAbility from '@ohos.app.ability.UIAbility'; +import common from '@ohos.app.ability.common'; -let UIAbilityContext = UIAbility.context; -let ApplicationContext = UIAbility.context.getApplicationContext(); @Entry @Component struct AbilityContextTest { // abilityContext - @State UIabilityInfo: string = '获取 abilityInfo' - UIabilityContext: UIAbilityContext + @State UIAbilityInfo: string = '获取 abilityInfo' + UIAbilityContext: common.UIAbilityContext aboutToAppear() { - // getContext获取Context,转为abilityContext - this.UIabilityContext = getContext(this) as UIAbilityContext + // getContext获取Context,转为abilityContext + this.UIAbilityContext = getContext(this) as common.UIAbilityContext } build() { Row() { Column({ space: 20 }) { - Text(this.abilityInfo) + Text(this.UIAbilityInfo) .fontSize(20) - .onClick(()=>{ - this.UIabilityInfo = JSON.stringify(this.UIabilityContext.UIabilityInfo) - console.log(`ContextDemo abilityInfo= ${this.UIabilityInfo}`) + .onClick(() => { + this.UIAbilityInfo = JSON.stringify(this.UIAbilityContext.abilityInfo) + console.log(`ContextDemo abilityInfo = ${this.UIAbilityInfo}`) }) } .width('100%') @@ -364,3 +449,51 @@ struct AbilityContextTest { } } ``` + +## 后台长时任务启动失败 + +适用于:OpenHarmony 3.2 Release API9 + +**问题现象** + +调用featureAbility.startAbility\(\)接口启动ServiceAbility,在ServiceAbility中启动后台长时任务报错,错误信息:\{"code":201,"message":"BussinessError 201: Permission denied."\} + +**解决措施** + +启动后台长时任务需要在module.json5文件中配置长时任务权限ohos.permission.KEEP\_BACKGROUND\_RUNNING、同时为需要使用长时任务的ability声明相应的后台模式类型。 + +``` +"module": { + "abilities": [ + { + "backgroundModes": [ + "dataTransfer", + "location" + ], // 后台模式类型 + } + ], + "requestPermissions": [ + { + "name": "ohos.permission.KEEP_BACKGROUND_RUNNING" // 长时任务权限 + } + ] +} +``` + +**参考链接** + +[ServiceAbility组件配置-后台模式类型](../application-models/serviceability-configuration.md) + +[长时任务权限](../security/permission-list.md#ohospermissionkeep_background_running) + +[长时任务开发指导](../task-management/continuous-task-dev-guide.md#基于stage模型) + +## FA卡片如何进行数据交互 + +适用于:OpenHarmony SDK 3.2 Beta 5 API9 + +卡片通过postCardAction接口触发和提供方的交互,在提供方中通过updateForm方法更新数据。 + +**参考链接** + +[服务卡片开发指导](../application-models/widget-development-fa.md) diff --git a/zh-cn/application-dev/faqs/faqs-arkui-arkts.md b/zh-cn/application-dev/faqs/faqs-arkui-arkts.md new file mode 100644 index 0000000000000000000000000000000000000000..dcccf95ebbd9b6a553cc2541bdc2950e528968ee --- /dev/null +++ b/zh-cn/application-dev/faqs/faqs-arkui-arkts.md @@ -0,0 +1,994 @@ +# ArkUI开发框架(ArkTS语法) + +## ArkUI如何通过代码动态创建组件 + +适用于:OpenHarmony 3.2 Beta5 API 9 + +**解决措施** + +ArkUI使用ArkTS声明式开发范式,开发者无法持有组件实例,在声明时通过渲染控制语法以及动态构建UI元素的方式,控制组件的创建。 + +**代码示例** + +``` +// 条件渲染语句创建组件 +if(this.isTrue) { + Text("创建文本组件").fontSize(30) +} +// 循环渲染语句创建组件 +ForEach(this.nums,(item) => { + Text(item + '').fontSize(30) +},item => JSON.stringify(item)) +``` + +**参考链接** + +[渲染控制语法](../quick-start/arkts-rendering-control-overview.md) + +## 使用@Builder装饰器包含自定义组件的方法与普通方法的区别是什么 + +适用于:OpenHarmony 3.2 Beta5 API 9 + +**解决措施** + +@Builder装饰的方法中使用了自定义组件,那么该方法每次被调用时,对应的自定义组件均会重新创建,普通方法中不使用@builder装饰,无法容纳自定义组件。 + +**参考链接** + +[@BuilderParam](../quick-start/arkts-builderparam.md) + +## 如何使用@BuilderParam装饰器进行组件传参 + +适用于:OpenHarmony 3.2 Beta5 API 9 + +**解决措施** + +- 不带参数 + + 对@BuilderParam修饰的属性进行赋值时不带参数(如:content: this.specificParam),则此属性的类型需定义成无返回值的函数(如:@BuilderParam content: \(\) =\> void)。 + +- 带参数 + + 对@BuilderParam修饰的属性进行赋值时带参数(如:callContent: this.specificParam1\("111"\)),则此属性的类型需定义成any(如:@BuilderParam callContent: any)。 + + +**参考链接** + +[@BuilderParam](../quick-start/arkts-builderparam.md) + +## 如何监听数组内对象属性变化 + +适用于:OpenHarmony 3.2 Beta5 API9 + +**问题现象** + +数组内存储对象示例,需要对对象的属性变化进行监听。 + +**解决措施** + +通过@Observed配合@ObjectLink装饰符实现。@Observed用于类,@ObjectLink用于变量。 + +**代码示例** + +1. 在类上使用@Observed。 + + ``` + @Observed + class ClassA { + public name: string + public c: number + public id: number + + constructor(c: number, name: string = 'OK') { + this.name = name + this.c = c + } + } + ``` + +2. 在组件变量使用@ObjectLink。 + + ``` + @Component + struct ViewA { + label: string = 'ViewA1' + @ObjectLink a: ClassA + + build() { + Row() { + Button(`ViewA [${this.label}] this.a.c= ${this.a.c} +1`) + .onClick(() => { + this.a.c += 1 + }) + }.margin({ top: 10 }) + } + } + ``` + + +**参考链接** + +[Observed和ObjectLink数据管理](../quick-start/arkts-observed-and-objectlink.md) + +## 子组件使用@Link修饰成员变量时,如何通过父组件传值 + +适用于:OpenHarmony 3.2 Beta5 API 9 + +**解决措施** + +子组件使用@Link接受父组件的值时,需要使用'$'建立变量之间的引用关系。才能实现同步。 + +**代码示例** + +\@Link语义是从'$'操作符引出,即\$isPlaying是this.isPlaying内部状态的双向数据绑定。当单击子组件PlayButton中的按钮时,\@Link变量更改,PlayButton与父组件中的Text和Button将同时进行刷新,同样地,当点击父组件中的Button修改this.isPlaying时,子组件PlayButton与父组件中的Text和Button也将同时刷新。 + +1. 在父组件使用\@State装饰器,传递数据使用\$符创建引用。 + + ``` + @Entry + @Component + struct Player { + @State isPlaying: boolean = false + build() { + Column() { + PlayButton({ buttonPlaying: $isPlaying }) + Text(`Player is ${this.isPlaying ? '' : 'not'} playing`).fontSize(18) + Button('Parent:' + this.isPlaying) + .margin(15) + .onClick(() => { + this.isPlaying = !this.isPlaying + }) + } + } + } + + + ``` + +2. 在子组件使用\@Link接受数据。 + + ``` + @Component + struct PlayButton { + @Link buttonPlaying: boolean + + build() { + Column() { + Button(this.buttonPlaying ? 'pause' : 'play') + .margin(20) + .onClick(() => { + this.buttonPlaying = !this.buttonPlaying + }) + } + } + } + ``` + + +**参考链接** + +[@Link](../quick-start/arkts-link.md) + +## 父组件如何与孙子组件进行状态同步 + +适用于:OpenHarmony 3.2 Beta5 API 9 + +**解决措施** + +- 方式一(推荐):使用@Provide和@Consume装饰器。在父组件使用@Provide,在孙子组件使用@Consume,可以实现父组件和孙子组件进行双向数据绑定。 + +- 方式二:使用@State和@Link装饰器。在父组件使用@State,在每一层子组件(子组件和孙子组件)都使用@Link。 + +**代码示例一** + +1. 父组件中使用子组件,通过Provide提供reviewVote参数,供跨级传递给孙子组件。 + + ``` + @Entry + @Component + struct Father{ + @Provide("reviewVote") reviewVotes: number = 0; + + build() { + Column() { + Son() + Button(`Father: ${this.reviewVotes}`) + ... + } + } + } + ``` + +2. 子组件中使用孙组件。 + + ``` + @Component + struct Son{ + build() { + Column() { + GrandSon() + } + } + } + ``` + +3. 孙子组件中使用Consume来接受reviewVote的参数。 + + ``` + @Component + struct GrandSon{ + @Consume("reviewVote") reviewVotes: number + + build() { + Column() { + Button(`GrandSon: ${this.reviewVotes}`) + ... + }.width('100%') + } + } + ``` + + +**代码示例二** + +1. 父组件Father使用@State绑定数据reviewVote。 + + ``` + @Entry + @Component + struct Father { + @State reviewVotes: number = 0; + + build() { + Column() { + Son({reviewVotes:$reviewVotes}) + Button(`Father: ${this.reviewVotes}`) + ... + } + } + } + ``` + +2. 子组件Son中使用@Link接受由父组件Father传递的参数reviewVote。 + + ``` + @Component + struct Son{ + @Link reviewVotes: number; + build() { + Column() { + Grandson({reviewVotes:$reviewVotes}) + } + } + } + + + ``` + +3. 孙子组件GrandSon使用@Link接受由Son组件传递的参数reviewVote。 + + ``` + @Component + struct Grandson{ + @Link reviewVotes: number; + + build() { + Column() { + Button(`Grandson: ${this.reviewVotes}`) + ... + }.width('100%') + } + } + ``` + + +## Js如何定义callback函数 + +适用于:OpenHarmony 3.2 Beta5 API 9 + +**解决措施** + +定义个callback函数的样例,**示例如下:** + +1. 定义回调函数 + + ``` + // 页面中定义个2个参数,空返回的callback函数 + myCallback: (a:number,b:string) => void + ``` + +2. 在使用时进行初始化赋值 + + ``` + aboutToAppear() { + // callback函数初始化 + this.myCallback= (a,b)=>{ + console.info(`handle myCallback a=${a},b=${b}`) + }} + ``` + + +## 组件需要多次更新时如何优化性能 + +适用于:OpenHarmony 3.2 Beta5 API 9 + +**解决措施** + +使用状态管理模块,目前已经支持最小化更新,当数据依赖变化时,不再是重新刷新整个自定义组件,而是只更新依赖数据的视图内容。 + +## 对象中函数的this如何指向外层 + +适用于:Openharmony 3.2 Beta5 API 9 + +**解决措施** + +通过箭头函数实现。 + +**代码示例** + +``` +const obj = { + start:() => { + return this.num + } +} +``` + +## 如何实现页面加载前从接口获取数据 + +适用于:Openharmony 3.2 Beta5 API 9 + +**问题现象** + +页面生命周期相关问题,在页面渲染前从接口获取数据,渲染时将数据渲染到页面上。 + +**解决措施** + +在声明周期函数aboutToAppear中使用异步接口获取页面数据,数据变量使用@State修饰,数据获取完成后根据变量自动刷新页面。 + +**代码示例** + +``` +@Entry +@Component +struct Test6Page { + // 数据获取成功,会自动刷新页面 + @State message: string = 'loading.....' + aboutToAppear(){ + // 模拟异步接口获取数据 + setTimeout(()=>{ + this.message = 'new msg' + },3000) + } + build() { + Row() { + Column() { + Text(this.message) + .fontSize(50) + .fontWeight(FontWeight.Bold) + } + .width('100%') + } + .height('100%') + } +} +``` + +## 如何将传感器的数据实时显示在UI的Text中 + +适用于:Openharmony 3.2 Beta5 API9 + +**解决措施** + +传感器返回数据类型为double,可将double转为string,再显示在text中。 + +## 如何监听屏幕旋转 + +适用于:Openharmony 3.2 Beta5 API 9 + +**解决措施** + +屏幕旋转可使用媒体查询接口进行监听。 + +``` +import mediaquery from '@ohos.mediaquery' +let listener = mediaquery.matchMediaSync('(orientation: landscape)'); //监听横屏事件 +function onPortrait(mediaQueryResult) { + if (mediaQueryResult.matches) { + // do something here + } else { + // do something here + } +} +listener.on('change', onPortrait) // 注册回调 +listener.off('change', onPortrait) // 去注册回调 +``` + +**参考链接** + +[媒体查询](../reference/apis/js-apis-mediaquery.md) + +## 创建的单例换了页面后不生效问题 + +适用于:Openharmony 3.2 Beta5 API 9 + +**问题现象** + +单例只有在同一个流程中才有效,换了页面后之前的实例都全是undefined。 + +**解决措施** + +对于每个Page都会生成一个js文件,定义的单例会在每个js中都生成一份,所以单例的作用范围只是Page的范围。 + +如果想共享一个实例,创建范围需要提升至UIAbility或者App级别。 + +## 如何将时间格式的字符串string转换为Date对象 + +适用于:Openharmony 3.2 Beta5 API 9 + +**解决措施** + +如果字符string满足格式“yyyy-MM-dd”格式,则可直接使用函数new Date\("yyyy-MM-dd"\)来获取对应的Date对象。 + +``` +new Date("2021-05-23"); +new Date("2020/2/29"); +new Date("2020-14-03"); +new Date("14-02-2021"); +``` + +其他格式字符串可使用new Date\(year:number,month:number,day?:number,hour?:number,mintue?:number,second?:number,ms?:number\)方法来获取Date对象。 + +``` +// 根据参数创建日期的语法: +new Date(yearValue, IndexOfMonth, dayValue, hours, minutes, seconds) +``` + +其中每一个参数换算为对应时间参数传入即可。 + +- yearValue:应符合 ISO 8061 YYYY 格式。例如 2021。如果我们以 YY 格式指定一个值,它将会被错误地接受。例如,仅将 2021 提到 21 会被认为是 1921 年而不是 2021 年。 +- IndexOfMonth:从索引 0 开始。因此,从 Month 值中减去 1。例如,对于 3 月,该值为 3,但 monthIndex 将为 2(即 3-1 = 2)。本月指数通常应在 0-11 范围内 +- dayValue:表示一个月中的某天。它应在 1-31 范围内,具体取决于一个月中的天数。例如:对于 21-05-2021,日期值为 21 +- hours:一天中的小时。例如 10 点。 +- minutes:过去一个小时的分钟数 +- seconds:保留超过一分钟的秒数。 + +## ArkTS如何把string转为byte数组 + +适用于:Openharmony 3.2 Beta5 API 9 + +**解决措施** + +参考如下代码实现,示例: + +``` +stringToArray(str:string) { + var arr = []; + for(var i = 0,j = str.length;i { + /* 原数据,GBK编码 + + + xxxxx + xxxx + xxxx + + + xxxx + + + + xxxx + + + 1 + For Outsourcing Staff/xxxx + + xxxx + xxxx + + + */ + let src = 'PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iR0JLIj8+CjxkYXRhPgo8YXNzZXRfbm8+eHh4eHg8L2Fzc2V0X25vPgo8bWFjaGluZV9zbj54eHh4PC9tYWNoaW5lX3NuPgo8Ymlvc19pZD54eHh4PC9iaW9zX2lkPgo8cmVzcG9uc2libGVfZW1wX25hbWU+PCFbQ0RBVEFbeHh4eF1dPjwvcmVzcG9uc2libGVfZW1wX25hbWU+CjxyZXNwb25zaWJsZV9hY2NvdW50PjwhW0NEQVRBW3h4eHggeHh4eF1dPjwvcmVzcG9uc2libGVfYWNjb3VudD4KPHJlc3BvbnNpYmxlX2VtcF9ubz54eHh4PC9yZXNwb25zaWJsZV9lbXBfbm8+CjxyZXNwb25zaWJsZV9kZXB0PjwhW0NEQVRBW3h4eHhdXT48L3Jlc3BvbnNpYmxlX2RlcHQ+Cjx1c2VyX2RlcHQ+PCFbQ0RBVEFbeHh4eF1dPjwvdXNlcl9kZXB0Pgo8dXNlcl9uYW1lPjwhW0NEQVRBW3h4eF1dPjwvdXNlcl9uYW1lPgo8Y3VyX2RvbWFpbl9hY2NvdW50Pnh4eHg8L2N1cl9kb21haW5fYWNjb3VudD4KPGFzc2V0X2xvYz48IVtDREFUQVstLV1dPjwvYXNzZXRfbG9jPgo8YXNzZXRfbG9jX2N1cj48IVtDREFUQVtdXT48L2Fzc2V0X2xvY19jdXI+Cjxhc3NldF90eXBlPjE8L2Fzc2V0X3R5cGU+Cjxhc3NldF91c2U+Rm9yIE91dHNvdXJjaW5nIFN0YWZmL3h4eHg8L2Fzc2V0X3VzZT4KPG92ZXJkdWVfZGF0ZT48L292ZXJkdWVfZGF0ZT4KPGFzc2V0X3N0YXR1cz54eHh4PC9hc3NldF9zdGF0dXM+Cjxhc3NldF9wZXJpb2Q+eHh4eDwvYXNzZXRfcGVyaW9kPgo8bGljZW5zZT48L2xpY2Vuc2U+CjwvZGF0YT4=' + let base64 = new util.Base64Helper(); + // base解码 + let src_uint8Array = base64.decodeSync(src); + // 解码为utf-8的字符串 + let textDecoder = util.TextDecoder.create("utf-8",{ignoreBOM: true}) + let src_str = textDecoder.decodeWithStream(src_uint8Array) + //替换encoding字段 + src_str = src_str.replace("GBK","utf-8") + console.log('Test src_str: ' + JSON.stringify(src_str)); + // 转换 xml-> json + let conv = new convertxml.ConvertXML(); + let options = {trim : false, declarationKey:"_declaration", + instructionKey : "_instruction", attributesKey : "_attributes", + textKey : "_text", cdataKey:"_cdata", doctypeKey : "_doctype", + commentKey : "_comment", parentKey : "_parent", typeKey : "_type", + nameKey : "_name", elementsKey : "_elements"} + let src_json = JSON.stringify(conv.convertToJSObject(src_str, options)); + console.log('Test json: ' + JSON.stringify(src_json)); + }) + } + .width('100%') + } + .height('100%') + } +} +``` + +## 在生成器函数中编译TS语言有哪些使用限制 + +适用于:Openharmony 3.2 Beta5 API 9 + +**解决措施** + +TS语言的使用在生成器函数中存在以下限制: + +- 表达式仅允许在字符串\(\$\{expression\}\)、if条件、ForEach的参数和组件的参数中使用。 +- 这些表达式中的任何一个都不能导致任何应用程序状态变量(@State、@Link、@Prop)的改变,否则会导致未定义和潜在不稳定的框架行为。 +- 生成器函数内部不能有局部变量。 + +上述限制都不适用于事件处理函数(例如onClick)的匿名函数实现。 + +## 如何设置一张图片上面四个角都分别有一个角标 + +适用于 OpenHarmony 3.2 Beta5 + +**问题现象** + +应用需求,在一张图片上面四个角分别设置一个角标。 + +**解决措施** + +可以使用绝对定位,设置元素锚点相对于父容器顶部起点的偏移位置。在布局容器中,设置该属性不影响父容器布局。 + +示例: + +``` +@Entry +@Component +struct PositionExample2 { + build() { + Column({ space: 20 }) { + Stack({ alignContent: Alignment.TopStart }) { + Row() + .size({ width: '100', height: '100' }) + .backgroundColor(0xdeb887) + Image($r('app.media.app_icon')) + .size({ width: 25, height: 25 }) + .markAnchor({ x: 0, y: 0 }) + Image($r('app.media.app_icon')) + .size({ width: 25, height: 25 }) + .markAnchor({ x: 25, y: 25 }) + .position({ x: '100%', y: '100%' }) + }.margin({ top: 25 }).width('100').height('100') + } + .width('100%').margin({ top: 25 }) + } +} +``` + +## util.generateRandomUUID参数问题 + +适用于 OpenHarmony 3.2 Beta5 + +**解决措施** + +generateRandomUUID底层使用Node.js crypto.randomUUID\(\)接口,传递参数为false时会生成uuid,并缓存到系统里,参数为true时使用系统已缓存的UUID。 + +参考文档:[util.generateRandomUUID](../reference/apis/js-apis-util.md#utilgeneraterandomuuid9) + +## worker线程与主线程是否运行在相同的全局上下文中 + +适用于 OpenHarmony 3.2 Beta5 + +**解决措施** + +worker线程与主线程不在同一个上下文中,它们使用数据通信的方式交互。 + +**参考链接** + +worker:[启动一个Worker](../reference/apis/js-apis-worker.md) + +## 应用图标一多设置 + +适用于:OpenHarmony 3.2 Beta5 API 9 + +**问题现象** + +希望可以按照设备的不同类型,显示相应的应用图标 + +**解决措施** + +借助资源限定词能力,可以实现应用图标的一多配置 + +**示例代码** + +1.创建资源目录,并在资源目录中添加资源文件,以Tablet为例,在src/main/resources下创建tablet资源目录,在tablet目录下创建media资源文件夹 + +``` +├─base +│ ├─element +│ ├─media +│ └─profile +├─rawfile +├─tablet +│ ├─element +│ └─media +``` + +2.在1中创建的media文件夹下添加设备类型为tablet时希望显示的图标文件,在UI界面进行引用 + +``` +@Entry @Component struct Index { build() { + Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) { + Text($r("app.string.my_string")) + .fontSize($r("app.float.my_float")) + .fontColor($r("app.color.my_color")) + Image($r("app.media.my_image")) + .width(100) + .height(100) + } + .width('100%') + .height('100%') } } +``` + +**参考链接** + +[资源使用](../key-features/multi-device-app-dev/resource-usage.md) + +## 调用方法的时候,如何解决方法内部的this变成undefined? + +适用于:OpenHarmony SDK 3.2,API 9 + +**问题现象** + +ArkTS里的this指向 + +**解决措施** + +方式一:在调用方法的时候加上.bind\(this\); + +方式二:使用箭头函数。 + +## OpenHarmony的systemTime.getCurrentTime\(\)接口和JS的new Date\(\).getTime\(\)有区别吗 + +适用于:OpenHarmony SDK 3.2,API 9 + +**解决措施** + +systemTime.getCurrentTime\(false\)和new Date\(\).getTime\(\)一样,都是返回1970年1月1日至今的毫秒数;systemTime.getCurrentTime\(true\)返回1970年1月1日至今的纳秒数。两种方式都是系统时间。 + +## 如何实现类似js中的slot插槽功能 + +适用于:OpenHarmony SDK 3.2,API 9 + +**解决措施** + +适用于:OpenHarmony SDK3.2.5.5, API9 Stage模型 + +该功能在ArkTS中使用@Build和@BuilderParam方式来实现,具体可参考文档:[@BuilderParam:引用@Builder函数](../quick-start/arkts-builderparam.md) + +## 加上lineHeight,Text垂直不居中的原因 + +适用于 OpenHarmony 3.2 Beta5 API 9 + +**原因分析** + +Text组件不用设置lineHeight属性,默认就是居中的。绘制文本是从底部开始绘制的,设置合适的lineHeight可以让文本有居中效果,但如果lineHeight设置的过高,文本就会显得偏下一些,一般lineHeight属性用来联合padding属性调整Text内的上下行间距。 + +**参考链接** + +[Text](../reference/arkui-ts/ts-basic-components-text.md#示例1) + +## SideBarContainer如何设置controlButton属性 + +适用于 OpenHarmony 3.2 Beta5,API9 + +**解决措施** + +示例代码: + +``` +@Entry +@Component +struct SideBarContainerExample { + normalIcon : Resource = $r("app.media.icon") + selectedIcon: Resource = $r("app.media.icon") + @State arr: number[] = [1, 2, 3] + @State current: number = 1 + + build() { + SideBarContainer(SideBarContainerType.Embed) + { + Column() { + ForEach(this.arr, (item, index) => { + Column({ space: 5 }) { + Image(this.current === item ? this.selectedIcon : this.normalIcon).width(64).height(64) + Text("Index0" + item) + .fontSize(25) + .fontColor(this.current === item ? '#0A59F7' : '#999') + .fontFamily('source-sans-pro,cursive,sans-serif') + } + .onClick(() => { + this.current = item + }) + }, item => item) + }.width('100%') + .justifyContent(FlexAlign.SpaceEvenly) + .backgroundColor('#19000000') + + + Column() { + Text('SideBarContainer content text1').fontSize(25) + Text('SideBarContainer content text2').fontSize(25) + } + .margin({ top: 50, left: 20, right: 30 }) + } + .sideBarWidth(150) + .minSideBarWidth(50) + .controlButton({left:32, + top:32, + width:32, + height:32, + icons:{shown: $r("app.media.icon"), + hidden: $r("app.media.icon"), + switching: $r("app.media.icon")}}) + .maxSideBarWidth(300) + .onChange((value: boolean) => { + console.info('status:' + value) + }) + } +} +``` + +## Grid如何实现拖拽功能 + +适用于 OpenHarmony 3.2 Beta5 ,API9 + +**解决措施** + +1. grid组件下设置属性editMode\(true\)设置Grid是否进入编辑模式,进入编辑模式可以拖拽Grid组件内部GridItem +2. 在[onItemDragStart](../reference/arkui-ts/ts-container-grid.md#事件)回调中设置拖拽过程中显示的图片 +3. 在[onItemDrop](../reference/arkui-ts/ts-container-grid.md#事件)中获取拖拽起始位置,和拖拽插入位置,在[onDrag](../reference/arkui-ts/ts-universal-events-drag-drop.md#事件)回调中完成交换数组位置逻辑。示例代码: + + ``` + @Entry + @Component + struct GridExample { + @State numbers: String[] = [] + scroller: Scroller = new Scroller() + @State text: string = 'drag' + + @Builder pixelMapBuilder() { //拖拽过程样式 + Column() { + Text(this.text) + .fontSize(16) + .backgroundColor(0xF9CF93) + .width(80) + .height(80) + .textAlign(TextAlign.Center) + } + } + + aboutToAppear() { + for (let i = 1;i <= 15; i++) { + this.numbers.push(i + '') + } + } + + changeIndex(index1: number, index2: number) { //交换数组位置 + [this.numbers[index1], this.numbers[index2]] = [this.numbers[index2], this.numbers[index1]]; + } + + build() { + Column({ space: 5 }) { + Grid(this.scroller) { + ForEach(this.numbers, (day: string) => { + GridItem() { + Text(day) + .fontSize(16) + .backgroundColor(0xF9CF93) + .width(80) + .height(80) + .textAlign(TextAlign.Center) + .onTouch((event: TouchEvent) => { + if (event.type === TouchType.Up) { + this.text = day + } + }) + } + }) + } + .columnsTemplate('1fr 1fr 1fr') + .columnsGap(10) + .rowsGap(10) + .onScrollIndex((first: number) => { + console.info(first.toString()) + }) + .width('90%') + .backgroundColor(0xFAEEE0) + .height(300) + .editMode(true) //设置Grid是否进入编辑模式,进入编辑模式可以拖拽Grid组件内部GridItem + .onItemDragStart((event: ItemDragInfo, itemIndex: number) => { //第一次拖拽此事件绑定的组件时,触发回调。 + return this.pixelMapBuilder() //设置拖拽过程中显示的图片。 + }) + .onItemDrop((event: ItemDragInfo, itemIndex: number, insertIndex: number, isSuccess: boolean) => { //绑定此事件的组件可作为拖拽释放目标,当在本组件范围内停止拖拽行为时,触发回调。 + console.info('beixiang' + itemIndex + '', insertIndex + '') //itemIndex拖拽起始位置,insertIndex拖拽插入位置 + this.changeIndex(itemIndex, insertIndex) + }) + }.width('100%').margin({ top: 5 }) + } + } + ``` + + +## 使用什么接口进行url编码 + +适用于:OpenHarmony 3.2 Beta5,API9 + +**解决措施** + +使用全局函数encodeURI进行编码,使用decodeURI进行解码。例如空格字符““,编码后为%20。 + +``` +let a = encodeURI(" ") +console.log(a) // %20 +``` + +## 如何解析xml + +适用于:OpenHarmony 3.2 Beta5,API9 + +**解决措施** + +使用ConvertXML的convert接口可以将xml文本解析为JavaScript对象。 + +参考文档:[转换xml](../reference/apis/js-apis-convertxml.md) + +## 使用Styles装饰器,编译报错.stateStyles doesn't conform standard + +适用于:OpenHarmony 3.2 Beta5,API9 + +**原因分析** + +Styles装饰器内部只支持通用属性,使用了非通用属性作为Style的代码 + +**解决措施** + +去掉非通用属性,或者使用Builder来提取公共组件。 + +## Radio组件\$\$双向绑定 + +适用于:OpenHarmony 3.2 Beta5,API9 + +**解决措施** + +Radio组件使用\$\$绑定的变量变更时,仅渲染当前组件,提高渲染速度。 + +当Radio组件的状态发生改变时,不会自动修改绑定的变量。 + +参考:[内置组件双向绑定](../quick-start/arkts-two-way-sync.md) + +## ForEach组件在真机上无法执行 + +适用于:OpenHarmony 3.2 beta5,API9 + +**问题现象** + +ForEach组件预览器可以正常执行,但在真机上无法执行。 + +**原因分析** + +真机上系统版本大于等于3.2beta5版本,真机会默认开启最小化更新策略。 + +旧版IDE默认没有开启最小化更新,导致组件运行异常。 + +**解决措施** + +module.json5添加"metadata"配置项: + +``` +{ + "module": { + "metadata": [ + { + "name": "ArkTSPartialUpdate", + "value": "true" + } + } +} +``` diff --git a/zh-cn/application-dev/faqs/faqs-arkui-web.md b/zh-cn/application-dev/faqs/faqs-arkui-web.md index a79302bdd7ef2a42265748b69eb3be6769b5cdc6..f7261602d61df292c4741cd19a05d9db7931c354 100644 --- a/zh-cn/application-dev/faqs/faqs-arkui-web.md +++ b/zh-cn/application-dev/faqs/faqs-arkui-web.md @@ -172,3 +172,102 @@ Web({ src: 'www.example.com', controller: this.controller }) **参考链接** [domStorageAccess](../reference/arkui-ts/ts-basic-components-web.md#domstorageaccess) + +## 如何解决Web组件加载的HTML页面内检测网络状态失败 + +适用于:OpenHarmony 3.2 Beta5 API 9 + +**问题现象** + +在HTML页面内通过window.navigator.onLine获取网络状态,联网和断网情况下均为false。 + +**解决措施** + +配置应用获取网络信息权限: ohos.permission.GET\_NETWORK\_INFO + +**参考链接** + +[GET\_NETWORK\_INFO](../security/permission-list.md#ohospermissionget_network_info) + +## 如何自定义拼接设置UserAgent参数 + +适用于:OpenHarmony 3.2 Beta5 API 9 + +**解决措施** + +默认UserAgent需要通过WebviewController获取。WebviewController对象必须在Web组件绑定后,才能调用WebviewController上的方法getUserAgent获取默认UserAgent。因此在页面加载前通过自定义字符串拼接修改UserAgent,可采用此方式: + +1. 使用@State定义初始UserAgent,绑定到Web组件; +2. 在Web组件的onUrlLoadIntercept回调中,通过WebviewController.getUserAgent\(\)获取默认UserAgent,并修改Web组件绑定的UserAgent + +**代码示例** + +``` +import web_webview from '@ohos.web.webview' +@Entry +@Component +struct Index { + private controller: web_webview.WebviewController = new web_webview.WebviewController() + @State userAgentPa: string = '' + build() { + Row() { + Column() { + Web({ src: 'http://www.example.com', controller: this.controller }) //需要手动替换为真实网站 + .width('100%') + .userAgent(this.userAgentPa) + .onUrlLoadIntercept((event) => { + let userAgent = this.controller.getUserAgent(); + this.userAgentPa = userAgent + ' 111111111' + return false; + }) + } + .width('100%') + } + .height('100%') + } +} +``` + +**参考链接** + +[userAgent](../reference/arkui-ts/ts-basic-components-web.md#useragent)、[getUserAgent](../reference/apis/js-apis-webview.md#getuseragent) + +## Web组件中如何通过手势滑动返回上一个Web页面 + +适用于:Openharmony 3.2 Beta5 API 9 + +**解决措施** + +通过重写onBackPress函数来自定义返回逻辑,使用WebviewController判断是否返回上一个Web页面。 + +**示例代码** + +``` +import web_webview from '@ohos.web.webview'; +@Entry +@Component +struct Index { + controller: web_webview.WebviewController = new web_webview.WebviewController(); + build() { + Column() { + Web({ src: 'http://www.example.com', controller: this.controller })//需要手动替换为真实网站 + } + } + onBackPress() { + // 当前页面是否可前进或者后退给定的step步(-1),正数代表前进,负数代表后退 + if (this.controller.accessStep(-1)) { + this.controller.backward(); // 返回上一个web页 + // 执行用户自定义返回逻辑 + return true + } else { + // 执行系统默认返回逻辑,返回上一个page页 + return false + } + } +} +``` + +**参考链接** + +[Web组件](../reference/apis/js-apis-webview.md#accessstep) + diff --git a/zh-cn/application-dev/faqs/faqs-bundle-management.md b/zh-cn/application-dev/faqs/faqs-bundle-management.md index 70d2dd7518b5674b41fb40d8e6c09945e3cb4bb5..a3f3a969f8be8b20e440cd558814b6aa84517e19 100644 --- a/zh-cn/application-dev/faqs/faqs-bundle-management.md +++ b/zh-cn/application-dev/faqs/faqs-bundle-management.md @@ -121,6 +121,86 @@ console.log(`bundleName: ${context.abilityInfo.bundleName}`) ## 能否在本应用中获取到其他应用的HAP包信息 -适用于:OpenHarmony 3.2 Beta API 9 +适用于:OpenHarmony 3.2 API 9 + +**问题现象** + +如何查询系统内其他应用的信息 + +**解决措施** + +查询系统内其他应用信息的API暂时只提供给系统应用使用,具体使用方法: + +- 查询系统内指定应用信息需要获取normal级权限ohos.permission.GET\_BUNDLE\_INFO,使用接口bundleManager.getApplicationInfo\(\)。 + +- 查询系统内所有应用信息需要获取system\_basic级权限ohos.permission.GET\_BUNDLE\_INFO\_PRIVILEGED,使用接口bundleManager.getAllApplicationInfo\(\)。 + +**参考链接** + +[@ohos.bundle.bundleManager \(bundleManager模块\)](../reference/apis/js-apis-bundleManager.md) + +## 如何查询进程的pid + +适用于:OpenHarmony 3.2 Beta API 9 + +**解决措施** + +可以通过接口@ohos.process来获取。 + +**代码示例** + +``` +import process from '@ohos.process'; +private pid = process.pid; +``` + +**参考链接** + +[@ohos.process \(获取进程相关的信息\)](../reference/apis/js-apis-process.md) + +## 如何让最大化按钮不可用 + +适用于:OpenHarmony 3.2 Beta API 9 + +**解决措施** + +可以通过supportWindowModes字段去指定是否显示。 + +- full\_screen表示支持全屏显示 + +- split表示支持分屏显示 + +- floating表示支持窗口化显示 + +**代码示例** + +``` +"abilities": [ + { + "name": "EntryAbility", + "srcEntry": "./ets/entryability/EntryAbility.ts", + "description": "$string:EntryAbility_desc", + "icon": "$media:icon", + "label": "$string:EntryAbility_label", + "startWindowIcon": "$media:icon", + "startWindowBackground": "$color:start_window_background", + "exported": true, + "supportWindowMode": ["split", "floating"], + "skills": [ + { + "entities": [ + "entity.system.home" + ], + "actions": [ + "action.system.home" + ] + } + ] + } +] +``` + +**参考链接** + +[supportWindowModes参考文档](../reference/apis/js-apis-bundleManager-abilityInfo.md) -根据OpenHarmony的安全设计规范,SDK不提供接口能力给三方应用查询其他应用的包信息(包括但不限于应用名称、版本号等)。 diff --git a/zh-cn/application-dev/faqs/faqs-compiler-runtime.md b/zh-cn/application-dev/faqs/faqs-compiler-runtime.md new file mode 100644 index 0000000000000000000000000000000000000000..df36c62b07cd4e7945e2799bfe8cc3b77f22dd4b --- /dev/null +++ b/zh-cn/application-dev/faqs/faqs-compiler-runtime.md @@ -0,0 +1,18 @@ +# 语言编译运行时常见问题 + +## 从rawfile中获取json格式的字符串后,转换成对应的object对象后,再去调用实例方法时直接崩溃 + +适用于:OpenHarmony 3.2 Beta API 9 + +**问题现象** + +直接报错:jscrash happened in xxxxxxxxx,crash日志中错误信息:Error message: Unexpected Object in JSON + +**解决措施** + +通过json解析字符串得到的对象的原型是object,其原型链中不存在自有的实例方法,故无法调用。 + +如需调用该方法,则有以下两种方式: +1. 在解析后的对象上添加对应的原型。 +2. 将该实例方法改为静态方法,通过类名去调用。 + diff --git a/zh-cn/application-dev/faqs/faqs-dfx.md b/zh-cn/application-dev/faqs/faqs-dfx.md index 565f2de33dfad073ca60a7260ebbe0164dd1e689..e5779c96d03e2c13f89f88f2aa92f9f34bf65eea 100644 --- a/zh-cn/application-dev/faqs/faqs-dfx.md +++ b/zh-cn/application-dev/faqs/faqs-dfx.md @@ -4,10 +4,6 @@ 适用于:OpenHarmony 3.2Beta API 9 -**问题现象** - -hilog日志如何落盘存储 - **解决措施** 使用命令:hilog -w start -f ckTest -l 1M -n 5 -m zlib -j 11 @@ -26,3 +22,129 @@ hilog日志如何落盘存储 更多参数含义请使用hilog --help查看。 ``` +## Hilog日志如何设置为只打印当前应用的日志 + +适用于:OpenHarmony 3.2Beta API 9 + +**解决措施** + +通过hilog命令行工具来过滤保留当前应用的日志日志。 + +hilog -T xxx 按tag过滤; + +hilog –D xxx 按domain过滤; + +hilog -e 对日志内容匹配,支持正则式tag, domain, pid都支持多重过滤,组合过滤以及反向过滤。 + +## 程序打开直接崩溃了,如何定位问题 + +适用于:OpenHarmony 3.2Beta API 9 + +**解决措施** + +方法1:通过业务日志打印,定位崩溃的代码位置。 + +方法2:通过Crash文件查看报错信息,Crash文件路径是:/data/log/faultlog/faultlogger/。 + +## 应用如何打印日志是使用hilog还是console,hilog接口参数domain的设置范围是什么 + +适用于:OpenHarmony 3.2Beta API 9 + +console是对hilog日志系统的封装,其采用默认参数,主要用于应用开发调试阶段。 + +推荐使用hilog,可以对日志系统进行分类和统一处理,具体参考文档:[hilog日志系统](../reference/apis/js-apis-hilog.md#hilogisloggable) + +hilog接口参数domain的取值范围0x0\~0xFFFF,建议开发者在应用内根据需要自定义划分。 + +## hilog日志打印长度限制是多少,是否可以配置 + +适用于:OpenHarmony 3.2Beta API 9 + +日志打印的长度限制为1024个字符,该长度不能配置 + +## 格式化日志打印时,使用private的作用是什么 + +适用于:OpenHarmony 3.2 Beta API 9 + +**问题现象** + +C++代码中hilog的格式参数类型为%d或者%s时,日志打印为何显示private + +**解决措施** + +直接使用%d、%s等格式化参数时,标准系统默认使用private替换真实数据进行打印,防止数据泄露。如果需要打印出真实数据,需要使用%\{public\}d替换%d或者%\{public\}s替换%s。 + +## 如何解决hilog.debug日志无法打印 + +适用于:OpenHarmony 3.2 Beta API 9 + +**解决措施** + +通过hdc命令 hdc shell hilog -b D开启调试开关 + +## hilog接口的tag参数是否支持用空格隔开的多个字符串 + +适用于:OpenHarmony 3.2 Beta API 9 + +支持。 + +## hilog如何打印\{private\}隐私标志的内容 + +适用于:OpenHarmony 3.2 Beta API 9 + +**解决措施** + +使用命令关闭隐私模式即可。命令如下:hdc shell hilog -p off + +## 有关崩溃日志收集和性能问题排查的功能有哪些 + +适用于:OpenHarmony 3.2 Beta API 9 + +**问题现象** + +有关崩溃日志收集和性能问题排查的功能有哪些 + +**解决措施** + +faultLogger:崩溃日志收集,参考文档:[故障日志获取](../reference/apis/js-apis-faultLogger.md) + +hichecker:问题检测,参考文档:[检测模式](../reference/apis/js-apis-hichecker.md) + +hiTraceMeter:性能打点,参考文档:[性能打点](../reference/apis/js-apis-hitracemeter.md) + +## 如何控制日志输出 + +适用于:OpenHarmony 3.2 Beta API 9 + +**问题现象** + +根据不同的环境要求,输出不同的日志信息。 + +**解决措施** + +通过hilog命令调整日志打印级别,输出不同级别的日志信息。命令如下: + +hdc shell hilog -L + +## hilog的TAG长度有限制吗 + +适用于:OpenHarmony 3.2 Beta API 9 + +整个tag的长度是32。 + +## 日志里面的appfreeze文件的怎么查看,要看哪些内容 + +适用于:OpenHarmony 3.2 Beta API 9 + +主要查看方向: + +1、先看一下Reason是什么事件的;根据不同的Reason下面有大致的检测原理和分析样例。 + +2、关注MSG有什么信息,根据MSG的信息看一下大致的方向; + +3、分析OpenStacktraceCatcher里面的应用栈信息,并且结合流水日志一起确定一下当前在干什么事情; + +4、看一下PeerBinderCatcher当前进程是否有对端的binder卡住,如果有跟当前进程相关的同步wait,则会有相应的PeerBinder Stacktrace信息——这个是卡住你当前进程的对端进程的栈信息。 + +5、还有整机进程的cpu信息和当前进程的内存信息辅助定位。 + diff --git a/zh-cn/application-dev/faqs/faqs-distributed-data-management.md b/zh-cn/application-dev/faqs/faqs-distributed-data-management.md index 935a31ebc67a2e390812c5745cd4aa924180082c..990e948258281788f189a759b82832ef4c06493a 100644 --- a/zh-cn/application-dev/faqs/faqs-distributed-data-management.md +++ b/zh-cn/application-dev/faqs/faqs-distributed-data-management.md @@ -25,8 +25,6 @@ 关系型数据库rdb使用Sqlite数据库, 它不支持 TRUNCATE TABLE 语句,建议使用delete语句,如:DELETE FROM sqlite\_sequence WHERE name = 'table\_name' ,另外发生该错误会抛出空异常。 - - ## 关系型数据库rdb支持哪些数据类型 适用于:OpenHarmony SDK 3.0版本以上,API 9 Stage模型 @@ -35,13 +33,43 @@ 关系型数据库rdb支持的数据类型有:number、string、boolean。其中number为数字类型,支持Double,Long,Float,Int,Int64,最大精度为十进制17位数字。 -## 如何将PixelMap的数据存储到数据库中 +## 如何实现应用数据持久化存储 -适用于:OpenHarmony 3.2 Beta5 API 9 +适用于 OpenHarmony 3.2 Beta5 API 9 -**问题现象** +**解决措施** + +通过PersistentStorage类实现管理应用持久化数据,可以将特定标记的持久化数据链接到AppStorage中,并由AppStorage接口访问对应持久化数据。PersistentStorage持久化后的数据会生成本地xml文件保存,文件路径为/data/app/el2/100/base//haps//files/persistent\_storage。 + +示例: -存储PixelMap的数据 +``` +AppStorage.Link('varA') +PersistentStorage.PersistProp("varA", "111"); +@Entry +@Component +struct Index { + @StorageLink('varA') varA: string = '' + build() { + Column() { + Text('varA: ' + this.varA).fontSize(20) + Button('Set').width(100).height(100).onClick(() => { + this.varA += '333' + }) + } + .width('100%') + .height('100%') + } +} +``` + +**参考链接** + +[持久化数据管理\(OpenHarmony\)](../quick-start/arkts-persiststorage.md) + +## 如何将PixelMap的数据存储到数据库中 + +适用于:OpenHarmony 3.2 Beta5 API 9 **解决措施** @@ -49,7 +77,7 @@ PixelMap应该被转换成相应的ArrayBuffer再放进数据库。 **参考链接** -[readPixelsToBuffer](../reference/apis/js-apis-image.md#readpixelstobuffer7-1) +[readPixelsToBuffer](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-image.md#readpixelstobuffer7-1) ## 如何获取rdb关系型数据库文件 @@ -105,6 +133,27 @@ API8版本rdb关系型数据库中TEXT类型保存超长文本失败 **解决措施** API9版本之前对TEXT文本存储长度限制在1024字节,所以会存在超长文本保存失败的情况。 - 在API9的版本中已经放开了长度限制。 +## Preferences.put缓存成功,但get的结果一直是undefined + +适用于:OpenHarmony 3.2 Beta5 API 9 + +**问题现象** + +使用首选项保存数据成功,但是获取数据为空。 + +**解决措施** + +1. 使用put操作后,使用flush持久化数据,然后再使用get获取数据。 + +2. 由于flush操作是异步执行,将Storage实例通过异步线程回写入文件中, 所以需要等待flush操作执行完成后,再执行get操作。 + +## 使用RDB数据库时,能否指定内存数据库模式 + +适用于:OpenHarmony 3.2 Beta5 API 9 + +**解决措施** + +RDB数据库底层使用的是SQLite,默认的内存数据库模式是文件,不支持修改。 + diff --git a/zh-cn/application-dev/faqs/faqs-event-notification.md b/zh-cn/application-dev/faqs/faqs-event-notification.md index f4b06e9496b2a5a0d156363a603c339012d419e7..4e15feed41b80437433db8fdc3a212d5e490a173 100644 --- a/zh-cn/application-dev/faqs/faqs-event-notification.md +++ b/zh-cn/application-dev/faqs/faqs-event-notification.md @@ -149,3 +149,64 @@ import UIAbility from '@ohos.app.ability.UIAbility'; **参考链接** [使用EventHub进行数据](../application-models/uiability-data-sync-with-ui.md#使用eventhub进行数据通信) + +## 如何实现点击Notification通知打开App功能 + +适用于:OpenHarmony 3.1 Beta5 API 9 + +**解决措施** + +通过配置Notification.publish发布通知接口的参数NotificationRequest中wantAgent属性实现 + +**代码示例** + +``` +import notificationManager from '@ohos.notificationManager'; +import WantAgent from '@ohos.app.ability.wantAgent'; + +async function publishNotification() { + let wantAgentInfo = { + wants: [ + { + bundleName: "com.example.webuseragent", // 自己应用的bundleName + abilityName: "EntryAbility", + } + ], + operationType: WantAgent.OperationType.START_ABILITIES, + requestCode: 1, + } + const wantAgent = await WantAgent.getWantAgent(wantAgentInfo) + let contentType = notificationManager.ContentType.NOTIFICATION_CONTENT_BASIC_TEXT; + await notificationManager.publish({ + content: { + contentType: contentType, + normal: { + title: "测试标题", + text: "测试内容", + } + }, + id: 1, + wantAgent: wantAgent + }) +} +``` + +**参考链接** + +[Notification](../reference/apis/js-apis-notificationManager.md)、[WantAgent](../reference/apis/js-apis-app-ability-wantAgent.md) + +## 调用notificationManager.publish发布通知失败 + +适用于:OpenHarmony 3.2 Beta5 + +**问题现象** + +发布通知后,无错误日志信息,通知栏没有通知显示 + +**解决措施** + +发布通知时,需要在真机端系统设置中,开启对应应用的通知开关,然后才能在通知栏中看到发布的通知。 + +手动开启步骤:设置 \> 通知和状态栏 \> 应用名称 \> 允许通知。 + +也可通过接口notificationManager.requestEnableNotification\(\)来弹窗让用户授权(仅弹一次)。 diff --git a/zh-cn/application-dev/faqs/faqs-file-management.md b/zh-cn/application-dev/faqs/faqs-file-management.md index 13dfb4b635a437205cfac776d39dbbb70df0c9ac..c3d0db10dc2282e883918ca0d6f9c9c467ec800a 100644 --- a/zh-cn/application-dev/faqs/faqs-file-management.md +++ b/zh-cn/application-dev/faqs/faqs-file-management.md @@ -20,4 +20,91 @@ 输入命令 hdc shell mount -o remount,rw /,正确执行无提示信息。 +## 如何实现文件不存在则创建文件 +适用于:OpenHarmony 3.2 版本 API 9 + +**解决措施** + +可以通过调用函数fs.open来实现,open\(path: string, mode?: number\),指定第二个参数mode为fs.OpenMode.CREATE,表示若文件不存在,则创建文件。 + +## 如何解决文件的中文乱码问题 + +适用于:OpenHarmony 3.2 版本 API 9 + +**解决措施** + +读取文件内容的buffer数据后,通过@ohos.util的TextDecoder对文件内容进行解码。 + +``` +let filePath = getContext(this).filesDir + "/test0.txt"; +let stream = fs.createStreamSync(filePath, "r+"); +let buffer = new ArrayBuffer(4096) +let readOut = stream.readSync(buffer); +let textDecoder = util.TextDecoder.create('utf-8', { ignoreBOM: true }) +let readString = textDecoder.decodeWithStream(new Uint8Array(buffer), { stream: false }); +console.log("读取的文件内容:" + readString); +``` + +## “datashare://”路径使用fs.open可以打开,但使用fs.copyFile会报错 + +适用于:OpenHarmony 3.2 版本 API 9 + +**解决措施** + +copyfile不支持uri,可以先使用open接口打开datashare uri后,拿到fd后再调用copyfile接口。 + +``` +let file = fs.openSync("datashare://...") +fs.copyFile(file.fd, 'dstPath', 0).then(() => { + console.info('copyFile success') +}).catch((err) => { + console.info("copy file failed with error message: " + err.message + ", error code: " + err.code); +}) +``` + +## 如何修改沙箱路径下json文件的指定内容 + +适用于:OpenHarmony 3.2 版本 API 9 + +**解决措施** + +可以通过以下步骤来完成: + +1、使用fs.openSyn获取json文件的fd。 + +``` +import fs from '@ohos.file.fs'; +let sanFile = fs.open(basePath, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE); +let fd = sanFile.fd; +``` + +2、通过fs.readSync读取json文件内容。 + +``` +let content = fs.readSync(basePath); +``` + +3、修改内容。 + +``` +obj.name = 'new name'; +``` + +4、重新写入json文件。 + +``` +fs.writeSync(file.fd, JSON.stringify(obj)); +``` + +fs的具体使用可以参考:[@ohos.file.fs](../reference/apis/js-apis-file-fs.md) + +## 通过fileAccess模块获取的文件路径对应的实际路径是什么 + +适用于:OpenHarmony 3.2 版本 API 9 Stage模型 + +**解决措施** + +此类文件是保存在/storage/media/100/local/files目录下,具体位置与文件类型和来源有关。知道文件名时,可在此目录下通过如下命令查找:find . -name \[filename\] + +[应用文件上传下载](../file-management/app-file-upload-download.md) diff --git a/zh-cn/application-dev/faqs/faqs-globalization.md b/zh-cn/application-dev/faqs/faqs-globalization.md index 9c42388f55a0a8ecd34de67d069bca30d0a70660..bcec6c810b7d5cc912e8c78e6a8a58d95dc38500 100644 --- a/zh-cn/application-dev/faqs/faqs-globalization.md +++ b/zh-cn/application-dev/faqs/faqs-globalization.md @@ -116,3 +116,35 @@ Resource为string支持限定词目录使用this.context.resourceManager.getStri 适用于:OpenHarmony 3.2 Beta5 API 9 form\_config.json文件中不支持使用\$引用常量。 + +## ArkTS如何解析xml文件 + +适用于:OpenHarmony 3.2 Beta5 API 9 + +**解决措施** + +1. 在rawfile目录下创建如下xml文件**。** + + ``` + + + Jacky + 18 + + ``` + +2. 使用resourceManager.getRawFileContent获取xml文件字节数组。 + + ``` + import resourceManager from '@ohos.resourceManager'; + resourceManager.getRawFileContent("test.xml", (error, value) => { + if (error != null) { + console.log("error is " + error); + return + } + let arrayBuffer = value.buffer; // unit8Array + var xmpParser = new xml.XmlPullParser(arrayBuffer); + var tagName = "" + //do something + } + ``` diff --git a/zh-cn/application-dev/faqs/faqs-graphics.md b/zh-cn/application-dev/faqs/faqs-graphics.md index 6f2c98331f3a50ca08c1de6460b91069c1c2bc73..426529f1568fba9f53c85da3d9c70a0a8aa0f01a 100644 --- a/zh-cn/application-dev/faqs/faqs-graphics.md +++ b/zh-cn/application-dev/faqs/faqs-graphics.md @@ -23,7 +23,7 @@ try { ## 如何隐藏状态栏实现沉浸式效果 -适用于:OpenHarmony 3.2 Beta5,API 9 Stage模型 +适用于:OpenHarmony 3.2 Beta5,API 9 **解决措施** @@ -59,7 +59,7 @@ try { ## 如何获取窗口的宽高信息 -适用于:OpenHarmony SDK 3.2 Beta5,API 9 Stage模型 +适用于:OpenHarmony 3.2 Beta5,API 9 Stage模型 **解决措施** @@ -91,3 +91,32 @@ try { } ``` +## 如何对图片进行高斯模糊处理 + +适用于:OpenHarmony 3.2 Beta5,API 9 + +**解决措施** + +导入图像处理(@ohos.multimedia.image)和图像效果(@ohos.effectKit)模块,对图像进行处理并添加模糊效果。 + +**代码示例** + +``` +import image from "@ohos.multimedia.image"; +import effectKit from "@ohos.effectKit"; + + const color = new ArrayBuffer(96); + let opts = { editable: true, pixelFormat: 3, size: { height: 4, width: 6 } }; + image.createPixelMap(color, opts).then((pixelMap) => { + let radius = 5; + let headFilter = effectKit.createEffect(pixelMap); + if (headFilter != null) { + headFilter.blur(radius); + } + }) +``` + +**参考链接:** + +[图片添加模糊效果](../reference/apis/js-apis-effectKit.md#blur) + diff --git a/zh-cn/application-dev/faqs/faqs-multimedia.md b/zh-cn/application-dev/faqs/faqs-multimedia.md index d2cec03590cf9ac47434dab0d24d911c2bd89835..f22280c5696d4dfaf74e72ded586c69597d07ad9 100644 --- a/zh-cn/application-dev/faqs/faqs-multimedia.md +++ b/zh-cn/application-dev/faqs/faqs-multimedia.md @@ -2,7 +2,7 @@ ## 使用XComponent组件显示相机的预览输出流时,如何获取相机的帧数据 -适用于:OpenHarmony 3.2 版本 API 9 Stage模型 +适用于:OpenHarmony 3.2 版本 API 9 **问题现象** @@ -35,7 +35,7 @@ ## 如何获取前置摄像头的预览图像 -适用于:OpenHarmony 3.2版本 API 9 Stage模型 +适用于:OpenHarmony 3.2版本 API 9 **解决措施** @@ -76,7 +76,7 @@ ## 如何设置相机焦距 -适用于:OpenHarmony 3.2版本 API 9 Stage模型 +适用于:OpenHarmony 3.2版本 API 9 **解决措施** @@ -86,7 +86,7 @@ ## 如何后台播放音乐 -适用于:OpenHarmony 3.2版本 API 9 Stage模型 +适用于:OpenHarmony 3.2版本 API 9 **问题现象** @@ -105,7 +105,7 @@ AVSession对媒体播放做了管控,当三方应用从前台切入后台或 ## 创建多个视频组件无法播放 -适用于:OpenHarmony 3.2版本 API 9 Stage模型 +适用于:OpenHarmony 3.2版本 API 9 **问题现象** @@ -115,10 +115,9 @@ AVSession对媒体播放做了管控,当三方应用从前台切入后台或 当前限制最多创建13个媒体播放实例。 - ## 如何直接调起图片库 -适用于:OpenHarmony 3.2版本 API 9 Stage模型 +适用于:OpenHarmony 3.2版本 API 9 **解决措施** @@ -134,3 +133,67 @@ let context = getContext(this) as common.UIAbilityContext; context.startAbility(want); ``` +## 如何申请设备上的媒体读写权限 + +适用于:OpenHarmony 3.2版本 API 9 Stage模型 + +**解决措施** + +1. 在module.json5配置文件中配置媒体读写权限ohos.permission.READ\_MEDIA和ohos.permission.WRITE\_MEDIA。 + + 示例: + + ``` + { + "module" : { + "requestPermissions":[ + { + "name" : "ohos.permission.READ_MEDIA", + "reason": "$string:reason" + }, + { + "name" : "ohos.permission.WRITE_MEDIA", + "reason": "$string:reason" + } + ] + } + } + ``` + +2. 这两个权限的授权方式均为user\_grant,因此需要调用requestPermissionsFromUser接口,以动态弹窗的方式向用户申请授权。 + + ``` + let context = getContext(this) as common.UIAbilityContext; + let atManager = abilityAccessCtrl.createAtManager(); + let permissions: Array = ['ohos.permission.READ_MEDIA','ohos.permission.WRITE_MEDIA'] + atManager.requestPermissionsFromUser(context, permissions) + .then((data) => { + console.log("Succeed to request permission from user with data: " + JSON.stringify(data)) + }).catch((error) => { + console.log("Failed to request permission from user with error: " + JSON.stringify(error)) + }) + ``` + +## 如何检测当前相机服务的状态 + +适用于:OpenHarmony 3.2版本 API 9 Stage模型 + +**解决措施** + +cameraManager通过设置状态回调返回相机状态。 + +``` +cameraManager.on('cameraStatus', (cameraStatusInfo) => { + console.log(`camera : ${cameraStatusInfo.camera.cameraId}`); + console.log(`status: ${cameraStatusInfo.status}`); +}) +``` +相机状态:CameraStatus +枚举,相机状态。 +CAMERA_STATUS_APPEAR 0 新的相机出现。 +CAMERA_STATUS_DISAPPEAR 1 相机被移除。 +CAMERA_STATUS_AVAILABLE 2 相机可用。 +CAMERA_STATUS_UNAVAILABLE 3 相机不可用。 + +参考文档:[CameraStatus](../reference/apis/js-apis-camera.md#oncamerastatus) + diff --git a/zh-cn/application-dev/faqs/faqs-sdk.md b/zh-cn/application-dev/faqs/faqs-sdk.md index ec62b97108d16192f52ebeea388e589a7f289dfc..f31cd09dec76138408c9e423d7b5f315b4bcfb82 100644 --- a/zh-cn/application-dev/faqs/faqs-sdk.md +++ b/zh-cn/application-dev/faqs/faqs-sdk.md @@ -39,3 +39,39 @@ target_link_libraries(entry PUBLIC ) ``` +## 在Native代码中使用OH\_LOG\_Print打印日志报错 + +适用于:OpenHarmony 3.1 Beta5 API 9 + +**问题现象** + +在Native代码中使用OH\_LOG\_Print打印日志,上报错误:undefined symbol: OH\_LOG\_Print + +**原因分析** + +缺少链接库文件。 + +**解决措施** + +打开CMakeLists.txt文件,在target\_link\_libraries最后追加libhilog\_ndk.z.so。 + +``` +set(NATIVERENDER_ROOT_PATH ${CMAKE_CURRENT_SOURCE_DIR}) +target_link_libraries(entry PUBLIC + libace_napi.z.so + libhilog_ndk.z.so +) +``` + +## 如何遍历rawfiles中的文件 + +适用于:OpenHarmony 3.1 Beta5 API 9 + +**解决方案:** + +使用Native API中的OH\_ResourceManager\_OpenRawDir\(\)方法获取到rawfile的根目录,然后对其进行遍历。 + +**参考文档:** + +[Native开发指导](../reference/native-apis/rawfile.md) + diff --git a/zh-cn/application-dev/faqs/faqs-sensor.md b/zh-cn/application-dev/faqs/faqs-sensor.md index 19a1a3a9d4061be371c6e9a410f0726dd9d0a8de..1e8249432e9d149b10dcc96004f754efbdfe0730 100644 --- a/zh-cn/application-dev/faqs/faqs-sensor.md +++ b/zh-cn/application-dev/faqs/faqs-sensor.md @@ -6,3 +6,19 @@ PPG和ECG的血压监测传感器属于可穿戴设备传感器,传感器数据设计个人隐私数据,暂未对个人开发者开放接口。 +## 如何正确使用震动模块接口 + +适用于:OpenHarmony 3.2版本 API 9 Stage模型 + +**问题现象** + +震动模块接口调用报错,错误码201。 + +vibrate fail, error.code: 201error.message: NaN + +**解决措施** + +权限校验失败。需要申请ohos.permission.VIBRATE权限。 + +参考文档:[权限申请](../security/accesstoken-guidelines.md) + diff --git a/zh-cn/application-dev/faqs/faqs-third-fourth-party-library.md b/zh-cn/application-dev/faqs/faqs-third-fourth-party-library.md index 887f1862bb7f9a4fe5208786bfa00109bdfdbc1b..8306f581a948d33ac9d9f18992c23ea39e580c2c 100644 --- a/zh-cn/application-dev/faqs/faqs-third-fourth-party-library.md +++ b/zh-cn/application-dev/faqs/faqs-third-fourth-party-library.md @@ -4,7 +4,7 @@ 适用于OpenHarmony 3.1 Beta5 API 9 -通过ohpm可以获取的三四方库在Gitee上做了汇总([OpenHarmony上可直接使用的三方组件汇总](https://gitee.com/openharmony-tpc/tpc_resource)),针对于不同功能三方库内容做了分类,开发者可以根据需要进行参考。 +通过ohpm可以获取的三四方库在Gitee上做了汇总([OpenHarmony上可直接使用的三方组件汇总](https://gitee.com/openharmony-tpc/tpc_resource?_from=gitee_search#%E4%B8%89%E6%96%B9%E7%BB%84%E4%BB%B6%E8%B5%84%E6%BA%90%E6%B1%87%E6%80%BB)),针对于不同功能三方库内容做了分类,开发者可以根据需要进行参考。 ## 网络相关的三方库有哪些 diff --git a/zh-cn/application-dev/faqs/faqs-window-manager.md b/zh-cn/application-dev/faqs/faqs-window-manager.md index e2cb6b2fbd358cac246d421f01d69564800c880c..be3ac7d14cfe79b8d64d58acda9eb840aeb8636a 100644 --- a/zh-cn/application-dev/faqs/faqs-window-manager.md +++ b/zh-cn/application-dev/faqs/faqs-window-manager.md @@ -63,3 +63,103 @@ onWindowStageCreate(windowStage){ [窗口基础能力文档](../reference/apis/js-apis-window.md) +## 如何锁定设备竖屏,使得窗口不随屏幕旋转 + +适用于:OpenHarmony SDK 3.2 Beta5 API 9 Stage模型 + +**解决措施** + +采用窗口的setPreferredOrientation方法可以实现该效果,将orientation参数设置为window.Orientation.PORTRAIT时,可锁定屏幕为竖屏。 + +**代码示例** + +``` +import window from "@ohos.window"; +//1.获取窗口实例对象,新建窗口使用createWindow方法,获取已有的窗口使用findWindow方法 +let windowClass = null; +let config = {name: "alertWindow", windowType: window.WindowType.TYPE_SYSTEM_ALERT, ctx: this.context}; +try { + let promise = window.createWindow(config); + promise.then((data)=> { + windowClass = data; + console.info('Succeeded in creating the window. Data:' + JSON.stringify(data)); + }).catch((err)=>{ + console.error('Failed to create the Window. Cause:' + JSON.stringify(err)); + });} catch (exception) { + console.error('Failed to create the window. Cause: ' + JSON.stringify(exception)); +} +//2.窗口实例使用setPreferredOrientation方法,设置窗口的显示方向,PROTRAIT为固定竖屏,其他方向可参照参考链接 +let orientation = window.Orientation.PORTRAIT; +if (windowClass) { + windowClass.setPreferredOrientation(orientation, (err) => { + if (err.code) { + console.error('Failed to set window orientation. Cause: ' + JSON.stringify(err)); + return; + } + console.info('Succeeded in setting window orientation.'); +} +``` + +**参考链接** + +[window.Orientation](../reference/apis/js-apis-window.md#orientation9) + +## 调用Window实例的setWindowSystemBarProperties接口设置窗口状态栏和导航栏的高亮属性时不生效 + +适用于:OpenHarmony SDK 3.2 Beta5 API9 Stage模型 + +**解决措施** + +状态栏字体高亮属性的本质就只是让字体变成白色。调用window实例的setWindowSystemBarProperties接口时,如果设置了状态栏内容颜色statusBarContentColor,就以开发者设置的颜色为准,isStatusBarLightIcon状态栏字体高亮属性就不生效;同理,如果设置了导航栏内容颜色navigationBarContentColor,isNavigationBarLightIcon导航栏字体高亮属性就不生效。 + +**参考链接** + +[window.SystemBarProperties](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-window.md#systembarproperties) + +## 如何保持屏幕常亮 + +适用于:OpenHarmony 3.2 Beta5 API9 + +**解决措施** + +设置屏幕常亮,不熄屏。 + +获取窗口实例对象后,调用[setWindowKeepScreenOn方法](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-window.md#setwindowkeepscreenon9)可设置屏幕是否常亮。 + +``` +let isKeepScreenOn = true; +try { + windowClass.setWindowKeepScreenOn(isKeepScreenOn, (err) => { + if (err.code) { + console.error('Failed to set the screen to be always on. Cause: ' + JSON.stringify(err)); + return; + } + console.info('Succeeded in setting the screen to be always on.'); + }); +} catch (exception) { + console.error('Failed to set the screen to be always on. Cause: ' + JSON.stringify(exception)); +} +``` + +## 如何监听窗口大小的变化 + +适用于:OpenHarmony 3.2 Beta5 API9 + +**解决措施** + +获取窗口实例对象后,可以通过窗口的on\('windowSizeChange'\)方法实现对窗口尺寸大小变化的监听 + +``` +try { + windowClass.on('windowSizeChange', (data) => { + console.info('Succeeded in enabling the listener for window size changes. Data: ' + JSON.stringify(data)); + }); +} catch (exception) { + console.error('Failed to enable the listener for window size changes. Cause: ' + JSON.stringify(exception)); +} +``` + +**参考链接** + +[window.on\("windowSizeChange"\)](../reference/apis/js-apis-window.md#onwindowsizechange7) + diff --git a/zh-cn/application-dev/quick-start/figures/alarm.png b/zh-cn/application-dev/faqs/figures/alarm.png similarity index 100% rename from zh-cn/application-dev/quick-start/figures/alarm.png rename to zh-cn/application-dev/faqs/figures/alarm.png diff --git a/zh-cn/application-dev/quick-start/figures/alarmHand.png b/zh-cn/application-dev/faqs/figures/alarmHand.png similarity index 100% rename from zh-cn/application-dev/quick-start/figures/alarmHand.png rename to zh-cn/application-dev/faqs/figures/alarmHand.png diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001655128939.png b/zh-cn/application-dev/faqs/figures/zh-cn_image_0000001655128939.png similarity index 100% rename from zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001655128939.png rename to zh-cn/application-dev/faqs/figures/zh-cn_image_0000001655128939.png diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001655128998.png b/zh-cn/application-dev/faqs/figures/zh-cn_image_0000001655128998.png similarity index 100% rename from zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001655128998.png rename to zh-cn/application-dev/faqs/figures/zh-cn_image_0000001655128998.png diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001655129041.png b/zh-cn/application-dev/faqs/figures/zh-cn_image_0000001655129041.png similarity index 100% rename from zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001655129041.png rename to zh-cn/application-dev/faqs/figures/zh-cn_image_0000001655129041.png diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001655129232.png b/zh-cn/application-dev/faqs/figures/zh-cn_image_0000001655129232.png similarity index 100% rename from zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001655129232.png rename to zh-cn/application-dev/faqs/figures/zh-cn_image_0000001655129232.png diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001655129264.png b/zh-cn/application-dev/faqs/figures/zh-cn_image_0000001655129264.png similarity index 100% rename from zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001655129264.png rename to zh-cn/application-dev/faqs/figures/zh-cn_image_0000001655129264.png diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001655129333.png b/zh-cn/application-dev/faqs/figures/zh-cn_image_0000001655129333.png similarity index 100% rename from zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001655129333.png rename to zh-cn/application-dev/faqs/figures/zh-cn_image_0000001655129333.png diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001655129372.png b/zh-cn/application-dev/faqs/figures/zh-cn_image_0000001655129372.png similarity index 100% rename from zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001655129372.png rename to zh-cn/application-dev/faqs/figures/zh-cn_image_0000001655129372.png diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001655129398.png b/zh-cn/application-dev/faqs/figures/zh-cn_image_0000001655129398.png similarity index 100% rename from zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001655129398.png rename to zh-cn/application-dev/faqs/figures/zh-cn_image_0000001655129398.png diff --git a/zh-cn/application-dev/quick-start/full-sdk-compile-guide.md b/zh-cn/application-dev/faqs/full-sdk-compile-guide.md similarity index 100% rename from zh-cn/application-dev/quick-start/full-sdk-compile-guide.md rename to zh-cn/application-dev/faqs/full-sdk-compile-guide.md diff --git a/zh-cn/application-dev/quick-start/full-sdk-switch-guide.md b/zh-cn/application-dev/faqs/full-sdk-switch-guide.md similarity index 100% rename from zh-cn/application-dev/quick-start/full-sdk-switch-guide.md rename to zh-cn/application-dev/faqs/full-sdk-switch-guide.md diff --git a/zh-cn/application-dev/reference/apis/Readme-CN.md b/zh-cn/application-dev/reference/apis/Readme-CN.md index 53ded009d6d140f909b342fa62d4e82ecc7b08b7..bb5a682af660c69d0e302c29d3728e8e8dc70beb 100755 --- a/zh-cn/application-dev/reference/apis/Readme-CN.md +++ b/zh-cn/application-dev/reference/apis/Readme-CN.md @@ -1,4 +1,4 @@ -# 接口 +# 接口 - [开发说明](development-intro.md) @@ -37,10 +37,12 @@ - [@ohos.app.ability.Want (Want)](js-apis-app-ability-want.md) - [@ohos.app.ability.wantAgent (WantAgent模块)](js-apis-app-ability-wantAgent.md) - [@ohos.app.ability.wantConstant (wantConstant)](js-apis-app-ability-wantConstant.md) + - [@ohos.app.businessAbilityRouter (业务路由模块)](js-apis-businessAbilityRouter.md) - [@ohos.app.form.formBindingData (卡片数据绑定类)](js-apis-app-form-formBindingData.md) - [@ohos.app.form.formHost (FormHost)](js-apis-app-form-formHost.md) - [@ohos.app.form.formInfo (FormInfo)](js-apis-app-form-formInfo.md) - [@ohos.app.form.formProvider (FormProvider)](js-apis-app-form-formProvider.md) + - [@ohos.application.uriPermissionManager(URI权限管理)](js-apis-uripermissionmanager.md) - 通用能力的接口(待停用) - [@ohos.ability.dataUriUtils (DataUriUtils模块)](js-apis-ability-dataUriUtils.md) - [@ohos.ability.errorCode (ErrorCode)](js-apis-ability-errorCode.md) @@ -138,6 +140,12 @@ - [NotificationSlot](js-apis-inner-notification-notificationSlot.md) - [NotificationTemplate](js-apis-inner-notification-notificationTemplate.md) - [NotificationUserInput](js-apis-inner-notification-notificationUserInput.md) + - 公共事件定义 + - [元能力子系统公共事件定义](common_event/commonEvent-ability.md) + - [包管理子系统公共事件定义](common_event/commonEvent-bundleManager.md) + - [通知服务公共事件定义](common_event/commonEvent-ans.md) + - [资源调度子系统公共事件定义](common_event/commonEvent-resourceschedule.md) + - [电话服务子系统公共事件定义](common_event/commonEvent-telephony.md) - 包管理 - [@ohos.bundle.appControl (appControl模块)](js-apis-appControl.md) - [@ohos.bundle.bundleManager (bundleManager模块)](js-apis-bundleManager.md) @@ -147,6 +155,7 @@ - [@ohos.bundle.freeInstall (freeInstall模块)](js-apis-freeInstall.md) - [@ohos.bundle.installer (installer模块)](js-apis-installer.md) - [@ohos.bundle.launcherBundleManager (launcherBundleManager模块)](js-apis-launcherBundleManager.md) + - [@ohos.bundle.overlay (overlay模块)](js-apis-overlay.md) - [@ohos.zlib (Zip模块)](js-apis-zlib.md) - bundleManager - [abilityInfo](js-apis-bundleManager-abilityInfo.md) @@ -154,18 +163,22 @@ - [AppProvisionInfo](js-apis-bundleManager-AppProvisionInfo.md) - [bundleInfo](js-apis-bundleManager-bundleInfo.md) - [BundlePackInfo](js-apis-bundleManager-BundlePackInfo.md) + - [BusinessAbilityInfo](js-apis-bundleManager-businessAbilityInfo.md) - [dispatchInfo](js-apis-bundleManager-dispatchInfo.md) - [elementName](js-apis-bundleManager-elementName.md) - [extensionAbilityInfo](js-apis-bundleManager-extensionAbilityInfo.md) - [hapModuleInfo](js-apis-bundleManager-hapModuleInfo.md) - [launcherAbilityInfo](js-apis-bundleManager-launcherAbilityInfo.md) - [metadata](js-apis-bundleManager-metadata.md) + - [OverlayModuleInfo](js-apis-bundleManager-overlayModuleInfo.md) - [permissionDef](js-apis-bundleManager-permissionDef.md) - [remoteAbilityInfo](js-apis-bundleManager-remoteAbilityInfo.md) + - [SharedBundleInfo](js-apis-bundleManager-sharedBundleInfo.md) - [shortcutInfo](js-apis-bundleManager-shortcutInfo.md) - UI界面 - [@ohos.animator (动画)](js-apis-animator.md) + - [@ohos.arkui.componentSnapshot(组件截图)](js-apis-arkui-componentSnapshot.md) - [@ohos.arkui.drawableDescriptor(DrawableDescriptor)](js-apis-arkui-drawableDescriptor.md) - [@ohos.curves (插值计算)](js-apis-curve.md) - [@ohos.matrix4 (矩阵变换)](js-apis-matrix4.md) @@ -263,6 +276,7 @@ - [@ohos.net.connection (网络连接管理)](js-apis-net-connection.md) - [@ohos.net.ethernet (以太网连接管理)](js-apis-net-ethernet.md) - [@ohos.net.http (数据请求)](js-apis-http.md) + - [@ohos.net.mdns (MDNS管理)](js-apis-net-mdns.md) - [@ohos.net.sharing (网络共享管理)](js-apis-net-sharing.md) - [@ohos.net.socket (Socket连接)](js-apis-socket.md) - [@ohos.net.webSocket (WebSocket连接)](js-apis-webSocket.md) @@ -319,12 +333,13 @@ - [@ohos.batteryStatistics (耗电统计)](js-apis-batteryStatistics.md) - [@ohos.brightness (屏幕亮度)](js-apis-brightness.md) - [@ohos.charger (充电类型)](js-apis-charger.md) + - [@ohos.cooperate (键鼠穿越)](js-apis-devicestatus-cooperate.md) - [@ohos.deviceInfo (设备信息)](js-apis-device-info.md) - [@ohos.distributedHardware.deviceManager (设备管理)](js-apis-device-manager.md) - [@ohos.geoLocationManager (位置服务)](js-apis-geoLocationManager.md) - [@ohos.multimodalInput.inputConsumer (组合按键)](js-apis-inputconsumer.md) - [@ohos.multimodalInput.inputDevice (输入设备)](js-apis-inputdevice.md) - - [@ohos.multimodalInput.inputDeviceCooperate (键鼠穿越)](js-apis-cooperate.md) + - [@ohos.multimodalInput.inputDeviceCooperate (键鼠穿越)(待停用)](js-apis-cooperate.md) - [@ohos.multimodalInput.inputEvent (输入事件)](js-apis-inputevent.md) - [@ohos.multimodalInput.inputEventClient (按键注入)](js-apis-inputeventclient.md) - [@ohos.multimodalInput.inputMonitor (输入监听)](js-apis-inputmonitor.md) diff --git a/zh-cn/application-dev/reference/apis/commonEvent-definitions.md b/zh-cn/application-dev/reference/apis/commonEvent-definitions.md index 576f230600fe6d6d3e0c9809195009b436a31171..c0c956ce547c3a86ded822d8835670b6b86bdd85 100644 --- a/zh-cn/application-dev/reference/apis/commonEvent-definitions.md +++ b/zh-cn/application-dev/reference/apis/commonEvent-definitions.md @@ -1,4 +1,4 @@ -# 系统公共事件定义 +# 系统公共事件定义(待停用) 本文档提供OpenHarmony系统所定义的公共事件类型的索引。 公共事件类型定义在[ohos.commonEvent模块的Support枚举](./js-apis-commonEvent.md#support)中。 diff --git a/zh-cn/application-dev/reference/apis/common_event/Readme.md b/zh-cn/application-dev/reference/apis/common_event/Readme.md new file mode 100644 index 0000000000000000000000000000000000000000..fb6fa8936e4738811bc3542acc239265dda9800b --- /dev/null +++ b/zh-cn/application-dev/reference/apis/common_event/Readme.md @@ -0,0 +1,7 @@ +# 公共事件定义 + +- [元能力子系统公共事件定义](commonEvent-ability.md) +- [包管理子系统公共事件定义](commonEvent-bundleManager.md) +- [通知服务公共事件定义](commonEvent-ans.md) +- [资源调度子系统公共事件定义](commonEvent-resourceschedule.md) +- [电话服务子系统公共事件定义](commonEvent-telephony.md) \ No newline at end of file diff --git a/zh-cn/application-dev/reference/apis/development-intro.md b/zh-cn/application-dev/reference/apis/development-intro.md index 3ae0b33f7b4767ff3342ab5b95cd6417c199183a..38741fe6261737b7ca960f4e9a6491178c43239c 100644 --- a/zh-cn/application-dev/reference/apis/development-intro.md +++ b/zh-cn/application-dev/reference/apis/development-intro.md @@ -29,7 +29,7 @@ OpenHarmony中提供的接口,部分是仅供OEM厂商使用的system api, 普通应用即在HarmonyAppProvision配置文件中应用程序类型为hos_normal_app的应用。工程新建时,该字段默认为hos_normal_app。 随DevEco下载的SDK为public-SDK,不包括系统接口。如需使用系统接口,需要: -- 参考[full-SDK替换指南](../../quick-start/full-sdk-switch-guide.md)将SDK替换为full-SDK。 +- 参考[full-SDK替换指南](../../faqs/full-sdk-switch-guide.md)将SDK替换为full-SDK。 - 参考[HarmonyAppProvision配置文件的说明](../../security/app-provision-structure.md)修改HarmonyAppProvision配置文件中的app-feature字段为hos_system_app(系统应用)。 ## 权限说明 diff --git a/zh-cn/application-dev/reference/apis/js-apis-inner-application-pacMap.md b/zh-cn/application-dev/reference/apis/js-apis-inner-application-pacMap.md deleted file mode 100644 index aa62c06d90ec15bf2b2850c1c565736d31b6a069..0000000000000000000000000000000000000000 --- a/zh-cn/application-dev/reference/apis/js-apis-inner-application-pacMap.md +++ /dev/null @@ -1,9 +0,0 @@ -## PacMap - -[key: string]: number | string | boolean | Array\ | null; - -**系统能力**:SystemCapability.Ability.AbilityRuntime.FAModel - -| 参数名 | 参数类型 | 必填 | 说明 | -| ------ | ------ | ------ | ------ | -| [key: string] | number \| string \| boolean \| Array\ \| null | Yes| 数据存储在键值对中。| \ No newline at end of file diff --git a/zh-cn/application-dev/reference/errorcodes/Readme-CN.md b/zh-cn/application-dev/reference/errorcodes/Readme-CN.md index 97e1500abe6c77ad40ca0880a79422ecddb0028d..5c0316c99feb389464ee7c6e1bb3420fad668c3e 100644 --- a/zh-cn/application-dev/reference/errorcodes/Readme-CN.md +++ b/zh-cn/application-dev/reference/errorcodes/Readme-CN.md @@ -55,6 +55,7 @@ - [网络连接管理错误码](errorcode-net-connection.md) - [以太网连接错误码](errorcode-net-ethernet.md) - [网络共享错误码](errorcode-net-sharing.md) + - [MDNS错误码](errorcode-net-mdns.md) - 通信与连接 - [Bluetooth错误码](errorcode-bluetoothManager.md) - [WIFI错误码](errorcode-wifi.md) @@ -81,7 +82,8 @@ - [热管理错误码](errorcode-thermal.md) - [设备管理错误码](errorcode-device-manager.md) - [位置服务子系统错误码](errorcode-geoLocationManager.md) - - [键鼠穿越管理错误码](errorcode-multimodalinput.md) + - [键鼠穿越管理错误码](errorcode-devicestatus.md) + - [键鼠穿越管理错误码 (待停用)](errorcode-multimodalinput.md) - [传感器错误码](errorcode-sensor.md) - [振动错误码](errorcode-vibrator.md) - [系统参数错误码](errorcode-system-parameterV9.md) diff --git a/zh-cn/application-dev/tools/Readme-CN.md b/zh-cn/application-dev/tools/Readme-CN.md index 8d00e136013134ad7f0f0015c4d49e5971dbc908..88a4e24f132a6611ca4c2679c8ed84d9b6d063a0 100644 --- a/zh-cn/application-dev/tools/Readme-CN.md +++ b/zh-cn/application-dev/tools/Readme-CN.md @@ -8,3 +8,4 @@ - [cem工具](cem-tool.md) - [anm工具](anm-tool.md) - [restool工具](restool.md) +- [LLDB调试器使用指导](lldb-tool.md) diff --git a/zh-cn/application-dev/tools/lldb-tool.md b/zh-cn/application-dev/tools/lldb-tool.md index 1764dca6756c9520a1272189e4ade6afc08f2581..09b79491332158cbd49c26bba8acf01e5d615670 100644 --- a/zh-cn/application-dev/tools/lldb-tool.md +++ b/zh-cn/application-dev/tools/lldb-tool.md @@ -2,7 +2,8 @@ ## 概述 LLDB(Low Lever Debugger)是新一代高性能调试器。 -当前Openharmony中的LLDB工具是在[llvm15.0.4](https://github.com/llvm/llvm-project/releases/tag/llvmorg-15.0.4)基础上适配演进出来的工具,支持在桌面和Openharmony设备或模拟器上调试。 +当前OpenHarmony中的LLDB工具是在[llvm15.0.4](https://github.com/llvm/llvm-project/releases/tag/llvmorg-15.0.4)基础上适配演进出来的工具,支持在桌面和Openharmony设备或模拟器上调试。 + ## 工具获取 通过OpenHarmony的SDK获取,从以下链接获取SDK:http://ci.openharmony.cn/dailys/dailybuilds diff --git a/zh-cn/application-dev/windowmanager/system-window-stage.md b/zh-cn/application-dev/windowmanager/system-window-stage.md index 58011ceea1a651473c615c4f621999128d592a7b..69b7dd77b3be7fd8b1a169d9ea3588cba27001f6 100644 --- a/zh-cn/application-dev/windowmanager/system-window-stage.md +++ b/zh-cn/application-dev/windowmanager/system-window-stage.md @@ -12,7 +12,7 @@ > **说明:** > -> 本文档涉及系统接口的使用,请使用full-SDK进行开发。具体使用可见[full-SDK替换指南](../quick-start/full-sdk-switch-guide.md)。 +> 本文档涉及系统接口的使用,请使用full-SDK进行开发。具体使用可见[full-SDK替换指南](../faqs/full-sdk-switch-guide.md)。 ## 接口说明 diff --git a/zh-cn/release-notes/OpenHarmony-v3.1.1-release.md b/zh-cn/release-notes/OpenHarmony-v3.1.1-release.md index f8103db7b38002e72de1771bb972a85a130bf18d..8ef45e563611245b5100af3cd1219d352d92b3ea 100644 --- a/zh-cn/release-notes/OpenHarmony-v3.1.1-release.md +++ b/zh-cn/release-notes/OpenHarmony-v3.1.1-release.md @@ -36,7 +36,7 @@ | -------- | -------- | -------- | | OpenHarmony | 3.1.1 Release | NA | | Public SDK | Ohos_sdk_public 3.1.6.6 (API Version 8 Release) | 面向应用开发者提供,不包含需要使用系统权限的系统接口。
DevEco Studio 3.0 Beta4版本起,通过DevEco Studio获取的SDK默认为Public SDK。
该版本Public SDK于7月6日单独更新发布。 | -| Full SDK | Ohos_sdk_full 3.1.6.5 (API Version 8 Release) | 面向OEM厂商提供,包含了需要使用系统权限的系统接口。
使用Full SDK时需要手动从镜像站点获取,并在DevEco Studio中替换,具体操作可参考[替换指南](../application-dev/quick-start/full-sdk-switch-guide.md)。 | +| Full SDK | Ohos_sdk_full 3.1.6.5 (API Version 8 Release) | 面向OEM厂商提供,包含了需要使用系统权限的系统接口。
使用Full SDK时需要手动从镜像站点获取,并在DevEco Studio中替换,具体操作可参考[替换指南](../application-dev/faqs/full-sdk-switch-guide.md)。 | | HUAWEI DevEco Studio(可选) | 3.0 Beta3 for OpenHarmony | OpenHarmony应用开发推荐使用。 | | HUAWEI DevEco Device Tool(可选) | 3.0 Release | OpenHarmony智能设备集成开发环境推荐使用。 | diff --git a/zh-cn/release-notes/OpenHarmony-v3.1.2-release.md b/zh-cn/release-notes/OpenHarmony-v3.1.2-release.md index 10544eea754b7b6a6e54d64f2eb9d0b6cec39015..6653ebb768e0ce91d456a40e7c724ff082d1af80 100644 --- a/zh-cn/release-notes/OpenHarmony-v3.1.2-release.md +++ b/zh-cn/release-notes/OpenHarmony-v3.1.2-release.md @@ -21,7 +21,7 @@ | 软件 | 版本 | 备注 | | -------- | -------- | -------- | | OpenHarmony | 3.1.2 Release | NA | -| Full SDK | Ohos_sdk_full 3.1.7.7 (API Version 8 Relese)
Ohos_sdk_full 3.1.7.5 (API Version 8 Relese) | 面向OEM厂商提供,包含了需要使用系统权限的系统接口。
使用Full SDK时需要手动从镜像站点获取,并在DevEco Studio中替换,具体操作可参考[替换指南](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/quick-start/full-sdk-switch-guide.md)。 | +| Full SDK | Ohos_sdk_full 3.1.7.7 (API Version 8 Relese)
Ohos_sdk_full 3.1.7.5 (API Version 8 Relese) | 面向OEM厂商提供,包含了需要使用系统权限的系统接口。
使用Full SDK时需要手动从镜像站点获取,并在DevEco Studio中替换,具体操作可参考[替换指南](../application-dev/faqs/full-sdk-switch-guide.md)。 | | Public SDK | Ohos_sdk_public 3.1.7.7 (API Version 8 Release)
Ohos_sdk_public 3.1.7.5 (API Version 8 Release) | 面向应用开发者提供,不包含需要使用系统权限的系统接口。
DevEco Studio 3.0 Beta4版本起,通过DevEco Studio获取的SDK默认为Public SDK。 | | HUAWEI DevEco Studio(可选) | 3.0 Beta4 for OpenHarmony | OpenHarmony应用开发推荐使用 | | HUAWEI DevEco Device Tool(可选) | 3.0 Release | OpenHarmony智能设备集成开发环境推荐使用 | @@ -36,7 +36,7 @@ 2. 注册码云SSH公钥,请参考[码云帮助中心](https://gitee.com/help/articles/4191)。 -3. 安装[git客户端](https://gitee.com/link?target=https%3A%2F%2Fgit-scm.com%2Fbook%2Fzh%2Fv2%2F%25E8%25B5%25B7%25E6%25AD%25A5-%25E5%25AE%2589%25E8%25A3%2585-Git)和[git-lfs](https://gitee.com/vcs-all-in-one/git-lfs?_from=gitee_search#downloading)并配置用户信息。 +3. 安装[git客户端](https://git-scm.com/book/zh/v2/%E8%B5%B7%E6%AD%A5-%E5%AE%89%E8%A3%85-Git)和[git-lfs](https://gitee.com/vcs-all-in-one/git-lfs?_from=gitee_search#downloading)并配置用户信息。 ``` git config --global user.name "yourname" diff --git a/zh-cn/release-notes/OpenHarmony-v3.1.3-release.md b/zh-cn/release-notes/OpenHarmony-v3.1.3-release.md index 4bbe03317dd3da8339cc1102f7cd86f310c7b6ca..9b11b7ed4fa3552e5684ccbaf80be30887b5e960 100644 --- a/zh-cn/release-notes/OpenHarmony-v3.1.3-release.md +++ b/zh-cn/release-notes/OpenHarmony-v3.1.3-release.md @@ -13,7 +13,7 @@ | 软件 | 版本 | 备注 | | -------- | -------- | -------- | | OpenHarmony | 3.1.3 Release | NA | -| Full SDK | Ohos_sdk_full 3.1.7.7 (API Version 8 Release) | 面向OEM厂商提供,包含了需要使用系统权限的系统接口。
使用Full SDK时需要手动从镜像站点获取,并在DevEco Studio中替换,具体操作可参考[替换指南](../application-dev/quick-start/full-sdk-switch-guide.md)。 | +| Full SDK | Ohos_sdk_full 3.1.7.7 (API Version 8 Release) | 面向OEM厂商提供,包含了需要使用系统权限的系统接口。
使用Full SDK时需要手动从镜像站点获取,并在DevEco Studio中替换,具体操作可参考[替换指南](../application-dev/faqs/full-sdk-switch-guide.md)。 | | Public SDK | Ohos_sdk_public 3.1.7.7 (API Version 8 Release) | 面向应用开发者提供,不包含需要使用系统权限的系统接口。
DevEco Studio 3.0 Beta4版本起,通过DevEco Studio获取的SDK默认为Public SDK。 | | HUAWEI DevEco Studio(可选) | 3.0 Release for OpenHarmony | OpenHarmony应用开发推荐使用。 | | HUAWEI DevEco Device Tool(可选) | 3.0 Release | OpenHarmony智能设备集成开发环境推荐使用。 | diff --git a/zh-cn/release-notes/OpenHarmony-v3.1.4-release.md b/zh-cn/release-notes/OpenHarmony-v3.1.4-release.md index f56f8e1469f74728a1ce6a9a62e85d35879ac20e..4ad9be714efe76cbef2081c2ff13af2bb6f4581c 100644 --- a/zh-cn/release-notes/OpenHarmony-v3.1.4-release.md +++ b/zh-cn/release-notes/OpenHarmony-v3.1.4-release.md @@ -13,7 +13,7 @@ | 软件 | 版本 | 备注 | | -------- | -------- | -------- | | OpenHarmony | 3.1.4 Release | NA | -| Full SDK | Ohos_sdk_full 3.1.9.7 (API Version 8 Relese) | 面向OEM厂商提供,包含了需要使用系统权限的系统接口。
使用Full SDK时需要手动从镜像站点获取,并在DevEco Studio中替换,具体操作可参考[替换指南](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/quick-start/full-sdk-switch-guide.md)。 | +| Full SDK | Ohos_sdk_full 3.1.9.7 (API Version 8 Relese) | 面向OEM厂商提供,包含了需要使用系统权限的系统接口。
使用Full SDK时需要手动从镜像站点获取,并在DevEco Studio中替换,具体操作可参考[替换指南](../application-dev/faqs/full-sdk-switch-guide.md)。 | | Public SDK | Ohos_sdk_public 3.1.9.7 (API Version 8 Release) | 面向应用开发者提供,不包含需要使用系统权限的系统接口。
DevEco Studio 3.0 Beta4版本起,通过DevEco Studio获取的SDK默认为Public SDK。 | | HUAWEI DevEco Studio(可选) | 3.1 Preview for OpenHarmony | OpenHarmony应用开发推荐使用。 | | HUAWEI DevEco Device Tool(可选) | 3.0 Release | OpenHarmony智能设备集成开发环境推荐使用。 | diff --git a/zh-cn/release-notes/OpenHarmony-v3.1.5-release.md b/zh-cn/release-notes/OpenHarmony-v3.1.5-release.md index a0a014e45f22a93fa462bc70512c13551af4d64b..ac17356e69263ecc0cc8000cc1b3657a9342846c 100644 --- a/zh-cn/release-notes/OpenHarmony-v3.1.5-release.md +++ b/zh-cn/release-notes/OpenHarmony-v3.1.5-release.md @@ -13,7 +13,7 @@ | 软件 | 版本 | 备注 | | -------- | -------- | -------- | | OpenHarmony | 3.1.5 Release | NA | -| Full SDK | Ohos_sdk_full 3.1.11.5 (API Version 8 Relese) | 面向OEM厂商提供,包含了需要使用系统权限的系统接口。
使用Full SDK时需要手动从镜像站点获取,并在DevEco Studio中替换,具体操作可参考[替换指南](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/quick-start/full-sdk-switch-guide.md)。 | +| Full SDK | Ohos_sdk_full 3.1.11.5 (API Version 8 Relese) | 面向OEM厂商提供,包含了需要使用系统权限的系统接口。
使用Full SDK时需要手动从镜像站点获取,并在DevEco Studio中替换,具体操作可参考[替换指南](../application-dev/faqs/full-sdk-switch-guide.md)。 | | Public SDK | Ohos_sdk_public 3.1.11.5 (API Version 8 Release) | 面向应用开发者提供,不包含需要使用系统权限的系统接口。
DevEco Studio 3.0 Beta4版本起,通过DevEco Studio获取的SDK默认为Public SDK。 | | HUAWEI DevEco Studio(可选) | 3.1 Preview for OpenHarmony | OpenHarmony应用开发推荐使用。 | | HUAWEI DevEco Device Tool(可选) | 3.0 Release | OpenHarmony智能设备集成开发环境推荐使用。 | diff --git a/zh-cn/release-notes/OpenHarmony-v3.1.6-release.md b/zh-cn/release-notes/OpenHarmony-v3.1.6-release.md index 70dbf6794d2b9b5661afeae9d07e64c1e4d95c9b..14bbc63cb1b3be6eae0f4506ae13bdc98bff0d26 100644 --- a/zh-cn/release-notes/OpenHarmony-v3.1.6-release.md +++ b/zh-cn/release-notes/OpenHarmony-v3.1.6-release.md @@ -13,7 +13,7 @@ | 软件 | 版本 | 备注 | | -------- | -------- | -------- | | OpenHarmony | 3.1.6 Release | NA | -| Full SDK | Ohos_sdk_full 3.1.12.5 (API Version 8 Relese) | 面向OEM厂商提供,包含了需要使用系统权限的系统接口。
使用Full SDK时需要手动从镜像站点获取,并在DevEco Studio中替换,具体操作可参考[替换指南](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/quick-start/full-sdk-switch-guide.md)。 | +| Full SDK | Ohos_sdk_full 3.1.12.5 (API Version 8 Relese) | 面向OEM厂商提供,包含了需要使用系统权限的系统接口。
使用Full SDK时需要手动从镜像站点获取,并在DevEco Studio中替换,具体操作可参考[替换指南](../application-dev/faqs/full-sdk-switch-guide.md)。 | | Public SDK | Ohos_sdk_public 3.1.12.5 (API Version 8 Release) | 面向应用开发者提供,不包含需要使用系统权限的系统接口。
DevEco Studio 3.0 Beta4版本起,通过DevEco Studio获取的SDK默认为Public SDK。 | | HUAWEI DevEco Studio(可选) | 3.1 Preview for OpenHarmony | OpenHarmony应用开发推荐使用。 | | HUAWEI DevEco Device Tool(可选) | 3.0 Release | OpenHarmony智能设备集成开发环境推荐使用。 | diff --git a/zh-cn/release-notes/OpenHarmony-v3.1.7-release.md b/zh-cn/release-notes/OpenHarmony-v3.1.7-release.md index fbab3c400837ea3592304bdd1e6ff8828eb83ff0..efe17bbdf125214d5e919a0d77daff096e1db46a 100644 --- a/zh-cn/release-notes/OpenHarmony-v3.1.7-release.md +++ b/zh-cn/release-notes/OpenHarmony-v3.1.7-release.md @@ -13,7 +13,7 @@ | 软件 | 版本 | 备注 | | ------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | | OpenHarmony | 3.1.7 Release | NA | -| Full SDK | Ohos_sdk_full 3.1.13.5 (API Version 8 Relese) | 面向OEM厂商提供,包含了需要使用系统权限的系统接口。
使用Full SDK时需要手动从镜像站点获取,并在DevEco Studio中替换,具体操作可参考[替换指南](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/quick-start/full-sdk-switch-guide.md)。 | +| Full SDK | Ohos_sdk_full 3.1.13.5 (API Version 8 Relese) | 面向OEM厂商提供,包含了需要使用系统权限的系统接口。
使用Full SDK时需要手动从镜像站点获取,并在DevEco Studio中替换,具体操作可参考[替换指南](../application-dev/faqs/full-sdk-switch-guide.md)。 | | Public SDK | Ohos_sdk_public 3.1.13.5 (API Version 8 Release) | 面向应用开发者提供,不包含需要使用系统权限的系统接口。
DevEco Studio 3.0 Beta4版本起,通过DevEco Studio获取的SDK默认为Public SDK。 | | HUAWEI DevEco Studio(可选) | 3.1 Preview for OpenHarmony | OpenHarmony应用开发推荐使用。 | | HUAWEI DevEco Device Tool(可选) | 3.0 Release | OpenHarmony智能设备集成开发环境推荐使用。 | diff --git a/zh-cn/release-notes/OpenHarmony-v3.2-beta2.md b/zh-cn/release-notes/OpenHarmony-v3.2-beta2.md index 93ed6c57df706d1f03612bfba6e3403a5a6efd93..6e42d7e23d1c96dddf9cf53d30a2293be2393019 100644 --- a/zh-cn/release-notes/OpenHarmony-v3.2-beta2.md +++ b/zh-cn/release-notes/OpenHarmony-v3.2-beta2.md @@ -36,7 +36,7 @@ | -------- | -------- | -------- | | OpenHarmony | 3.2 Beta2 | NA | | Public SDK | Ohos_sdk_public 3.2.5.5 (API Version 9 Beta2)
Ohos_sdk_public 3.2.5.6 (API Version 9 Beta2) | 面向应用开发者提供,不包含需要使用系统权限的系统接口。
通过DevEco Studio默认获取的SDK为Public SDK。 | -| Full SDK | Ohos_sdk_full 3.2.5.5 (API Version 9 Beta2)
Ohos_sdk_full 3.2.5.6 (API Version 9 Beta2) | 面向OEM厂商提供,包含了需要使用系统权限的系统接口。
使用Full SDK时需要手动从镜像站点获取,并在DevEco Studio中替换,具体操作可参考[替换指南](../application-dev/quick-start/full-sdk-switch-guide.md)。 | +| Full SDK | Ohos_sdk_full 3.2.5.5 (API Version 9 Beta2)
Ohos_sdk_full 3.2.5.6 (API Version 9 Beta2) | 面向OEM厂商提供,包含了需要使用系统权限的系统接口。
使用Full SDK时需要手动从镜像站点获取,并在DevEco Studio中替换,具体操作可参考[替换指南](../application-dev/faqs/full-sdk-switch-guide.md)。 | | HUAWEI DevEco Studio(可选) | 3.0 Beta4 | OpenHarmony应用开发推荐使用。 | | HUAWEI DevEco Device Tool(可选) | 3.0 Release | OpenHarmony智能设备集成开发环境推荐使用。 | @@ -132,7 +132,7 @@ ### SDK变更 从本版本起,SDK会同时提供Public SDK和Full SDK。通过DevEco Studio默认获取的SDK为Public SDK。 -已使用较早版本SDK开发的应用如果使用到了系统API,升级本版本后需要[手动替换SDK为Full SDK](../application-dev/quick-start/full-sdk-switch-guide.md)才可以保证应用工程可编译通过。 +已使用较早版本SDK开发的应用如果使用到了系统API,升级本版本后需要[手动替换SDK为Full SDK](../application-dev/faqs/full-sdk-switch-guide.md)才可以保证应用工程可编译通过。 ### 特性变更 diff --git a/zh-cn/release-notes/OpenHarmony-v3.2-beta3.md b/zh-cn/release-notes/OpenHarmony-v3.2-beta3.md index 1cf5cace6f9b2aa29a6012aa382299608713cb63..6bd83dfca27c15feb57d17a480386980a1b2a030 100644 --- a/zh-cn/release-notes/OpenHarmony-v3.2-beta3.md +++ b/zh-cn/release-notes/OpenHarmony-v3.2-beta3.md @@ -54,7 +54,7 @@ DeviceProfile适配分布式数据库自动同步策略,以及采集信息补 | -------- | -------- | -------- | | OpenHarmony | 3.2 Beta3 | NA | | Public SDK | Ohos_sdk_public 3.2.7.5 (API Version 9 Beta3)
Ohos_sdk_public 3.2.7.6 (API Version 9 Beta3) | 面向应用开发者提供,不包含需要使用系统权限的系统接口。
通过DevEco Studio默认获取的SDK为Public SDK。 | -| Full SDK | Ohos_sdk_full 3.2.7.5 (API Version 9 Beta3)
Ohos_sdk_full 3.2.7.6 (API Version 9 Beta3) | 面向OEM厂商提供,包含了需要使用系统权限的系统接口。
使用Full SDK时需要手动从镜像站点获取,并在DevEco Studio中替换,具体操作可参考[替换指南](../application-dev/quick-start/full-sdk-switch-guide.md)。 | +| Full SDK | Ohos_sdk_full 3.2.7.5 (API Version 9 Beta3)
Ohos_sdk_full 3.2.7.6 (API Version 9 Beta3) | 面向OEM厂商提供,包含了需要使用系统权限的系统接口。
使用Full SDK时需要手动从镜像站点获取,并在DevEco Studio中替换,具体操作可参考[替换指南](../application-dev/faqs/full-sdk-switch-guide.md)。 | | HUAWEI DevEco Studio(可选) | 3.0 Release | OpenHarmony应用开发推荐使用 | | HUAWEI DevEco Device Tool(可选) | 3.0 Release | OpenHarmony智能设备集成开发环境推荐使用 | diff --git a/zh-cn/release-notes/OpenHarmony-v3.2-beta4.md b/zh-cn/release-notes/OpenHarmony-v3.2-beta4.md index 51a4584ae45e3d58d26c28718f70744c1586224d..de809b5eab4631c414d4fdc6d232683b701dcaf7 100644 --- a/zh-cn/release-notes/OpenHarmony-v3.2-beta4.md +++ b/zh-cn/release-notes/OpenHarmony-v3.2-beta4.md @@ -46,7 +46,7 @@ ArkTS API新增支持错误码的上报,帮助开发者快速捕捉异常, | -------- | -------- | -------- | | OpenHarmony | 3.2 Beta4 | NA | | Public SDK | Ohos_sdk_public 3.2.9.2 (API Version 9 Beta4) | 面向应用开发者提供,不包含需要使用系统权限的系统接口。通过DevEco Studio默认获取的SDK为Public SDK。 | -| Full SDK | Ohos_sdk_full 3.2.9.2 (API Version 9 Beta4) | 面向OEM厂商提供,包含了需要使用系统权限的系统接口。使用Full SDK时需要手动从镜像站点获取,并在DevEco Studio中替换,具体操作可参考[替换指南](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/quick-start/full-sdk-switch-guide.md)。 | +| Full SDK | Ohos_sdk_full 3.2.9.2 (API Version 9 Beta4) | 面向OEM厂商提供,包含了需要使用系统权限的系统接口。使用Full SDK时需要手动从镜像站点获取,并在DevEco Studio中替换,具体操作可参考[替换指南](../application-dev/faqs/full-sdk-switch-guide.md)。 | | HUAWEI DevEco Studio(可选) | 3.1 Canary1 | OpenHarmony应用开发推荐使用。 | | HUAWEI DevEco Device Tool(可选) | 3.1 Beta1 | OpenHarmony智能设备集成开发环境推荐使用。 |