提交 8f23a649 编写于 作者: 毕虎 提交者: Gitee

Merge branch 'monthly_20221018' of gitee.com:openharmony/docs into monthly_20221018

Signed-off-by: N毕虎 <bihu@huawei.com>
...@@ -58,26 +58,15 @@ struct ComponentA { ...@@ -58,26 +58,15 @@ struct ComponentA {
this.label = (this.languageCode === 'zh') ? '数量' : 'Count' this.label = (this.languageCode === 'zh') ? '数量' : 'Count'
}) })
} }
.margin({ bottom: 50 }) .margin({ top: 50, bottom: 50 })
Row() { Row() {
Button(`更改@StorageLink修饰的变量:${this.varA}`).height(40).fontSize(14) Button(`更改@StorageLink修饰的变量:${this.varA}`).height(40).fontSize(14)
.onClick(() => { .onClick(() => {
this.varA++ this.varA++
}) })
}.margin({ bottom: 50 })
Row() {
Button(`更改@StorageProp修饰的变量:${this.languageCode}`).height(40).fontSize(14)
.onClick(() => {
if (this.languageCode === 'zh') {
this.languageCode = 'en'
} else {
this.languageCode = 'zh'
}
})
} }
} }.width('100%')
} }
} }
``` ```
......
...@@ -15,8 +15,8 @@ ArkTS提供了多维度的状态管理机制,在ArkUI开发框架中,和UI ...@@ -15,8 +15,8 @@ ArkTS提供了多维度的状态管理机制,在ArkUI开发框架中,和UI
| @Link | 基本数据类型,类,数组 | 父子组件之间的双向数据绑定,父组件的内部状态数据作为数据源,任何一方所做的修改都会反映给另一方。 | | @Link | 基本数据类型,类,数组 | 父子组件之间的双向数据绑定,父组件的内部状态数据作为数据源,任何一方所做的修改都会反映给另一方。 |
| @Observed | 类 | @Observed应用于类,表示该类中的数据变更被UI页面管理。 | | @Observed | 类 | @Observed应用于类,表示该类中的数据变更被UI页面管理。 |
| @ObjectLink | 被@Observed所装饰类的对象 | @ObjectLink装饰的状态数据被修改时,在父组件或者其他兄弟组件内与它关联的状态数据所在的组件都会重新渲染。 | | @ObjectLink | 被@Observed所装饰类的对象 | @ObjectLink装饰的状态数据被修改时,在父组件或者其他兄弟组件内与它关联的状态数据所在的组件都会重新渲染。 |
| @Consume | 基本数据类型,类,数组 | @Consume装饰的变量在感知到@Provide装饰的变量更新后,会触发当前自定义组件的重新渲染。 |
| @Provide | 基本数据类型,类,数组 | @Provide作为数据的提供方,可以更新其子孙节点的数据,并触发页面重新渲染。 | | @Provide | 基本数据类型,类,数组 | @Provide作为数据的提供方,可以更新其子孙节点的数据,并触发页面重新渲染。 |
| @Consume | 基本数据类型,类,数组 | @Consume装饰的变量在感知到@Provide装饰的变量更新后,会触发当前自定义组件的重新渲染。 |
## 应用级变量的状态管理 ## 应用级变量的状态管理
...@@ -25,6 +25,9 @@ AppStorage是整个应用程序状态的中心“数据库”,UI框架会针 ...@@ -25,6 +25,9 @@ AppStorage是整个应用程序状态的中心“数据库”,UI框架会针
- @StorageLink:@StorageLink(name)的原理类似于@Consume(name),不同的是,该给定名称的链接对象是从AppStorage中获得的,在UI组件和AppStorage之间建立双向绑定同步数据。 - @StorageLink:@StorageLink(name)的原理类似于@Consume(name),不同的是,该给定名称的链接对象是从AppStorage中获得的,在UI组件和AppStorage之间建立双向绑定同步数据。
- @StorageProp:@StorageProp(name)将UI组件数据与AppStorage进行单向同步,AppStorage中值的更改会更新UI组件中的数据,但UI组件无法更改AppStorage中的数据。 - @StorageProp:@StorageProp(name)将UI组件数据与AppStorage进行单向同步,AppStorage中值的更改会更新UI组件中的数据,但UI组件无法更改AppStorage中的数据。
- AppStorage还提供了用于业务逻辑实现的API,用于添加、读取、修改和删除应用程序的状态数据,此API所做的更改会导致修改的状态数据同步到UI组件上进行UI更新。 - AppStorage还提供了用于业务逻辑实现的API,用于添加、读取、修改和删除应用程序的状态数据,此API所做的更改会导致修改的状态数据同步到UI组件上进行UI更新。
- LocalStorage是应用程序中每一个Ability的存储器。
- @LocalStorageLink:组件通过使用@LocalStorageLink(key)装饰的状态变量,key值为LocalStorage中的属性键值,与LocalStorage建立双向数据绑定。
- @LocalStorageProp:组件通过使用@LocalStorageProp(key)装饰的状态变量,key值为LocalStorage中的属性键值,与LocalStorage建立单向数据绑定。
- PersistentStorage提供了一些静态方法用来管理应用持久化数据,可以将特定标记的持久化数据链接到AppStorage中,并由AppStorage接口访问对应持久化数据,或者通过@StorageLink装饰器来访问对应key的变量。 - PersistentStorage提供了一些静态方法用来管理应用持久化数据,可以将特定标记的持久化数据链接到AppStorage中,并由AppStorage接口访问对应持久化数据,或者通过@StorageLink装饰器来访问对应key的变量。
- Environment是框架在应用程序启动时创建的单例对象,它为AppStorage提供了一系列应用程序需要的环境状态数据,这些数据描述了应用程序运行的设备环境。 - Environment是框架在应用程序启动时创建的单例对象,它为AppStorage提供了一系列应用程序需要的环境状态数据,这些数据描述了应用程序运行的设备环境。
...@@ -152,7 +152,7 @@ struct CountDownComponent { ...@@ -152,7 +152,7 @@ struct CountDownComponent {
- 支持多种类型:@Link支持的数据类型与@State相同,即class、number、string、boolean或这些类型的数组; - 支持多种类型:@Link支持的数据类型与@State相同,即class、number、string、boolean或这些类型的数组;
- 私有:仅支持组件内访问; - 私有:仅支持组件内访问;
- 单个数据源:父组件中用于初始化子组件@Link变量的必须是@State变量; - 单个数据源:父组件中用于初始化子组件@Link变量的必须是父组件定义的状态变量;
- 双向通信:子组件对@Link变量的更改将同步修改父组件中的@State变量; - 双向通信:子组件对@Link变量的更改将同步修改父组件中的@State变量;
- 创建自定义组件时需要将变量的引用传递给@Link变量,在创建组件的新实例时,必须使用命名参数初始化所有@Link变量。@Link变量可以使用@State变量或@Link变量的引用进行初始化,@State变量可以通过`'$'`操作符创建引用。 - 创建自定义组件时需要将变量的引用传递给@Link变量,在创建组件的新实例时,必须使用命名参数初始化所有@Link变量。@Link变量可以使用@State变量或@Link变量的引用进行初始化,@State变量可以通过`'$'`操作符创建引用。
...@@ -391,7 +391,7 @@ struct ViewB { ...@@ -391,7 +391,7 @@ struct ViewB {
``` ```
## @Consume和@Provide ## @Provide和@Consume
@Provide作为数据的提供方,可以更新其子孙节点的数据,并触发页面渲染。@Consume在感知到@Provide数据的更新后,会触发当前自定义组件的重新渲染。 @Provide作为数据的提供方,可以更新其子孙节点的数据,并触发页面渲染。@Consume在感知到@Provide数据的更新后,会触发当前自定义组件的重新渲染。
......
...@@ -40,10 +40,10 @@ create(options: AnimatorOptions): AnimatorResult ...@@ -40,10 +40,10 @@ create(options: AnimatorOptions): AnimatorResult
easing: 'friction', easing: 'friction',
delay: 0, delay: 0,
fill: 'forwards', fill: 'forwards',
direction: "normal", direction: 'normal',
iterations: 3, iterations: 3,
begin: 200.0, begin: 200.0,
end: 400.0, end: 400.0
}; };
animator.create(options); animator.create(options);
``` ```
...@@ -83,10 +83,10 @@ let options = { ...@@ -83,10 +83,10 @@ let options = {
easing: 'friction', easing: 'friction',
delay: 0, delay: 0,
fill: 'forwards', fill: 'forwards',
direction: "normal", direction: 'normal',
iterations: 3, iterations: 3,
begin: 200.0, begin: 200.0,
end: 400.0, end: 400.0
}; };
try { try {
animator.reset(options); animator.reset(options);
...@@ -296,10 +296,10 @@ export default { ...@@ -296,10 +296,10 @@ export default {
easing: 'friction', easing: 'friction',
delay: 0, delay: 0,
fill: 'forwards', fill: 'forwards',
direction: "normal", direction: 'normal',
iterations: 2, iterations: 2,
begin: 0, begin: 0,
end: 400.0, end: 400.0
}; };
try { try {
this.animator.reset(options1); this.animator.reset(options1);
...@@ -516,10 +516,10 @@ let options = { ...@@ -516,10 +516,10 @@ let options = {
easing: 'friction', easing: 'friction',
delay: 0, delay: 0,
fill: 'forwards', fill: 'forwards',
direction: "normal", direction: 'normal',
iterations: 3, iterations: 3,
begin: 200.0, begin: 200.0,
end: 400.0, end: 400.0
}; };
this.animator = animator.createAnimator(options); this.animator = animator.createAnimator(options);
``` ```
\ No newline at end of file
...@@ -17,6 +17,26 @@ ...@@ -17,6 +17,26 @@
import DataShareExtensionAbility from '@ohos.application.DataShareExtensionAbility' import DataShareExtensionAbility from '@ohos.application.DataShareExtensionAbility'
``` ```
## uri命名规则
标准uri定义结构如下:
**Scheme://authority/path**
- Scheme: 协议名,对于data share统一为datashare
- authority: [userinfo@]host[:port]
- userinfo: 登录信息,不需要填写。
- host: 服务器地址,如果跨设备访问则为目标设备的ID,如果为本设备则为空。
- port: 服务器端口,不需要填写。
- path: data share的标识信息和资源的路径信息,需要包含data share的标识信息,资源的路径信息可以不填写。
uri示例:
- 不包含资源路径: `datashare:///com.samples.datasharetest.DataShare`
- 包含资源路径: `datashare:///com.samples.datasharetest.DataShare/DB00/TBL00`
其中,data share的标识信息为`com.samples.datasharetest.DataShare`,资源路径为`DB00/TBL00`
## 属性 ## 属性
**系统能力**:SystemCapability.DistributedDataManager.DataShare.Provider **系统能力**:SystemCapability.DistributedDataManager.DataShare.Provider
......
...@@ -327,7 +327,7 @@ struct ImageComponent { ...@@ -327,7 +327,7 @@ struct ImageComponent {
this.widthSize = curve.interpolate(0.5) * this.widthSize; this.widthSize = curve.interpolate(0.5) * this.widthSize;
this.heightSize = curve.interpolate(0.5) * this.heightSize; this.heightSize = curve.interpolate(0.5) * this.heightSize;
}) })
.animation({duration: 2000 , curve: Curves.stepsCurve(9, true)}) .animation({ duration: 2000 , curve: Curves.stepsCurve(9, true) })
}.width("100%").height("100%") }.width("100%").height("100%")
} }
} }
......
...@@ -17,6 +17,25 @@ ...@@ -17,6 +17,25 @@
import dataShare from '@ohos.data.dataShare' import dataShare from '@ohos.data.dataShare'
``` ```
## uri命名规则
标准uri定义结构如下:
**Scheme://authority/path**
- Scheme: 协议名,对于data share统一为datashare
- authority: [userinfo@]host[:port]
- userinfo: 登录信息,不需要填写。
- host: 服务器地址,如果跨设备访问则为目标设备的ID,如果为本设备则为空。
- port: 服务器端口,不需要填写。
- path: data share的标识信息和资源的路径信息,需要包含data share的标识信息,资源的路径信息可以不填写。
uri示例:
- 不包含资源路径: `datashare:///com.samples.datasharetest.DataShare`
- 包含资源路径: `datashare:///com.samples.datasharetest.DataShare/DB00/TBL00`
其中,data share的标识信息为`com.samples.datasharetest.DataShare`,资源路径为`DB00/TBL00`
## dataShare.createDataShareHelper ## dataShare.createDataShareHelper
......
...@@ -92,11 +92,11 @@ save接口回调信息。 ...@@ -92,11 +92,11 @@ save接口回调信息。
**系统能力:** SystemCapability.DistributedDataManager.DataObject.DistributedObject **系统能力:** SystemCapability.DistributedDataManager.DataObject.DistributedObject
| 名称 | 类型 | 说明 | | 名称 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
| sessionId | string | 多设备协同的唯一标识。 | | sessionId | string | 是 | 多设备协同的唯一标识。 |
| version | number |已保存对象的版本。 | | version | number | 是 | 已保存对象的版本。 |
| deviceId | string | 存储数据的设备号,标识需要保存对象的设备。默认为"local",标识本地设备;可自定义设置其他标识设备的字符串。 | | deviceId | string | 是 | 存储数据的设备号,标识需要保存对象的设备。默认为"local",标识本地设备;可自定义设置其他标识设备的字符串。 |
## RevokeSaveSuccessResponse<sup>9+</sup> ## RevokeSaveSuccessResponse<sup>9+</sup>
...@@ -104,9 +104,9 @@ revokeSave接口回调信息。 ...@@ -104,9 +104,9 @@ revokeSave接口回调信息。
**系统能力:** SystemCapability.DistributedDataManager.DataObject.DistributedObject **系统能力:** SystemCapability.DistributedDataManager.DataObject.DistributedObject
| 名称 | 类型 | 说明 | | 名称 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
| sessionId | string | 多设备协同的唯一标识。 | | sessionId | string | 是 | 多设备协同的唯一标识。 |
## DistributedObjectV9 ## DistributedObjectV9
......
...@@ -148,8 +148,8 @@ import matrix4 from '@ohos.matrix4' ...@@ -148,8 +148,8 @@ import matrix4 from '@ohos.matrix4'
@Entry @Entry
@Component @Component
struct Test { struct Test {
private matrix1 = matrix4.identity().translate({x:100}) private matrix1 = matrix4.identity().translate({ x: 100 })
private matrix2 = this.matrix1.copy().scale({x:2}) private matrix2 = this.matrix1.copy().scale({ x: 2 })
build() { build() {
Column() { Column() {
...@@ -160,7 +160,7 @@ struct Test { ...@@ -160,7 +160,7 @@ struct Test {
Image($r("app.media.bg2")) Image($r("app.media.bg2"))
.width("40%") .width("40%")
.height(100) .height(100)
.margin({top:50}) .margin({ top: 50 })
.transform(this.matrix2) .transform(this.matrix2)
} }
} }
...@@ -202,8 +202,8 @@ import matrix4 from '@ohos.matrix4' ...@@ -202,8 +202,8 @@ import matrix4 from '@ohos.matrix4'
@Entry @Entry
@Component @Component
struct Test { struct Test {
private matrix1 = matrix4.identity().translate({x:200}).copy() private matrix1 = matrix4.identity().translate({ x: 200 }).copy()
private matrix2 = matrix4.identity().scale({x:2}).copy() private matrix2 = matrix4.identity().scale({ x: 2 }).copy()
build() { build() {
Column() { Column() {
...@@ -211,13 +211,13 @@ struct Test { ...@@ -211,13 +211,13 @@ struct Test {
Image($r("app.media.icon")) Image($r("app.media.icon"))
.width("40%") .width("40%")
.height(100) .height(100)
.margin({top:50}) .margin({ top: 50 })
// 先平移x轴200px,再缩放两倍x轴,得到矩阵变换后的效果图 // 先平移x轴200px,再缩放两倍x轴,得到矩阵变换后的效果图
Image($r("app.media.icon")) Image($r("app.media.icon"))
.transform(this.matrix1.combine(this.matrix2)) .transform(this.matrix1.combine(this.matrix2))
.width("40%") .width("40%")
.height(100) .height(100)
.margin({top:50}) .margin({ top: 50 })
} }
} }
} }
...@@ -245,7 +245,7 @@ Matrix的逆函数,可以返回一个当前矩阵对象的逆矩阵,即效 ...@@ -245,7 +245,7 @@ Matrix的逆函数,可以返回一个当前矩阵对象的逆矩阵,即效
```ts ```ts
import matrix4 from '@ohos.matrix4' import matrix4 from '@ohos.matrix4'
// matrix1(宽放大2倍) 和 matrix2(宽缩小2倍) 效果相反 // matrix1(宽放大2倍) 和 matrix2(宽缩小2倍) 效果相反
let matrix1 = matrix4.identity().scale({x:2}) let matrix1 = matrix4.identity().scale({ x: 2 })
let matrix2 = matrix1.invert() let matrix2 = matrix1.invert()
@Entry @Entry
@Component @Component
...@@ -298,7 +298,7 @@ import matrix4 from '@ohos.matrix4' ...@@ -298,7 +298,7 @@ import matrix4 from '@ohos.matrix4'
@Entry @Entry
@Component @Component
struct Test { struct Test {
private matrix1 = matrix4.identity().translate({x:100, y:200, z:30}) private matrix1 = matrix4.identity().translate({ x: 100, y: 200, z: 30 })
build() { build() {
Column() { Column() {
...@@ -346,7 +346,7 @@ import matrix4 from '@ohos.matrix4' ...@@ -346,7 +346,7 @@ import matrix4 from '@ohos.matrix4'
@Entry @Entry
@Component @Component
struct Test { struct Test {
private matrix1 = matrix4.identity().scale({x:2, y:3, z:4, centerX:50, centerY:50}) private matrix1 = matrix4.identity().scale({ x:2, y:3, z:4, centerX:50, centerY:50 })
build() { build() {
Column() { Column() {
...@@ -395,14 +395,14 @@ import matrix4 from '@ohos.matrix4' ...@@ -395,14 +395,14 @@ import matrix4 from '@ohos.matrix4'
@Entry @Entry
@Component @Component
struct Test { struct Test {
private matrix1 = matrix4.identity().rotate({x:1, y:1, z:2, angle:30}) private matrix1 = matrix4.identity().rotate({ x: 1, y: 1, z: 2, angle: 30 })
build() { build() {
Column() { Column() {
Image($r("app.media.bg1")).transform(this.matrix1) Image($r("app.media.bg1")).transform(this.matrix1)
.width("40%") .width("40%")
.height(100) .height(100)
}.width("100%").margin({top:50}) }.width("100%").margin({ top: 50 })
} }
} }
``` ```
......
...@@ -571,9 +571,9 @@ getParams(): Object ...@@ -571,9 +571,9 @@ getParams(): Object
**返回值:** **返回值:**
| 类型 | 说明 | | 类型 | 说明 |
| ------ | ----------------- | | ------ | ---------------------------------- |
| Object | 发起跳转的页面往当前页传入的参数。 | | object | 发起跳转的页面往当前页传入的参数。 |
**示例:** **示例:**
...@@ -653,7 +653,7 @@ struct Index { ...@@ -653,7 +653,7 @@ struct Index {
} }
} }
try { try {
await router.push(options) await router.pushUrl(options)
} catch (err) { } catch (err) {
console.info(` fail callback, code: ${err.code}, msg: ${err.msg}`) console.info(` fail callback, code: ${err.code}, msg: ${err.msg}`)
} }
...@@ -661,18 +661,18 @@ struct Index { ...@@ -661,18 +661,18 @@ struct Index {
build() { build() {
Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) { Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) {
Text('这是第一页') Text('这是第一页')
.fontSize(50) .fontSize(50)
.fontWeight(FontWeight.Bold) .fontWeight(FontWeight.Bold)
Button() { Button() {
Text('next page') Text('next page')
.fontSize(25) .fontSize(25)
.fontWeight(FontWeight.Bold) .fontWeight(FontWeight.Bold)
}.type(ButtonType.Capsule) }.type(ButtonType.Capsule)
.margin({ top: 20 }) .margin({ top: 20 })
.backgroundColor('#ccc') .backgroundColor('#ccc')
.onClick(() => { .onClick(() => {
this.routePage() this.routePage()
}) })
} }
.width('100%') .width('100%')
...@@ -704,7 +704,7 @@ struct Second { ...@@ -704,7 +704,7 @@ struct Second {
this.secondData = (this.data.array[1]).toString() this.secondData = (this.data.array[1]).toString()
}) })
.margin({top:20}) .margin({top:20})
Text('第一页传来的数值' + ' ' + this.secondData) Text(`第一页传来的数值:${this.secondData}`)
.fontSize(20) .fontSize(20)
.margin({top:20}) .margin({top:20})
.backgroundColor('red') .backgroundColor('red')
......
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
## 导入模块 ## 导入模块
``` ```ts
import mediaquery from '@system.mediaquery'; import mediaquery from '@system.mediaquery';
``` ```
...@@ -39,8 +39,8 @@ matchMedia(condition: string): MediaQueryList ...@@ -39,8 +39,8 @@ matchMedia(condition: string): MediaQueryList
**示例:** **示例:**
``` ```ts
var mMediaQueryList = mediaquery.matchMedia('(max-width: 466)'); let mMediaQueryList = mediaquery.matchMedia('(max-width: 466)');
``` ```
## MediaQueryEvent ## MediaQueryEvent
...@@ -97,7 +97,7 @@ addListener(callback: (event: MediaQueryEvent) => void): void ...@@ -97,7 +97,7 @@ addListener(callback: (event: MediaQueryEvent) => void): void
**示例:** **示例:**
``` ```ts
function maxWidthMatch(e){ function maxWidthMatch(e){
if(e.matches){ if(e.matches){
// do something // do something
...@@ -123,7 +123,7 @@ removeListener(callback: (event: MediaQueryEvent) => void): void ...@@ -123,7 +123,7 @@ removeListener(callback: (event: MediaQueryEvent) => void): void
**示例:** **示例:**
``` ```ts
function maxWidthMatch(e){ function maxWidthMatch(e){
if(e.matches){ if(e.matches){
// do something // do something
......
...@@ -43,8 +43,8 @@ export default { ...@@ -43,8 +43,8 @@ export default {
data1: 'message', data1: 'message',
data2: { data2: {
data3: [123, 456, 789] data3: [123, 456, 789]
}, }
}, }
}); });
} }
} }
...@@ -94,8 +94,8 @@ export default { ...@@ -94,8 +94,8 @@ export default {
router.replace({ router.replace({
uri: 'pages/detail/detail', uri: 'pages/detail/detail',
params: { params: {
data1: 'message', data1: 'message'
}, }
}); });
} }
} }
...@@ -135,7 +135,7 @@ back(options?: BackRouterOptions): void ...@@ -135,7 +135,7 @@ back(options?: BackRouterOptions): void
export default { export default {
indexPushPage() { indexPushPage() {
router.push({ router.push({
uri: 'pages/detail/detail', uri: 'pages/detail/detail'
}); });
} }
} }
...@@ -147,7 +147,7 @@ export default { ...@@ -147,7 +147,7 @@ export default {
export default { export default {
detailPushPage() { detailPushPage() {
router.push({ router.push({
uri: 'pages/mall/mall', uri: 'pages/mall/mall'
}); });
} }
} }
...@@ -237,7 +237,7 @@ getLength(): string ...@@ -237,7 +237,7 @@ getLength(): string
```js ```js
export default { export default {
getLength() { getLength() {
var size = router.getLength(); let size = router.getLength();
console.log('pages stack size = ' + size); console.log('pages stack size = ' + size);
} }
} }
...@@ -262,7 +262,7 @@ getState(): RouterState ...@@ -262,7 +262,7 @@ getState(): RouterState
```js ```js
export default { export default {
getState() { getState() {
var page = router.getState(); let page = router.getState();
console.log('current index = ' + page.index); console.log('current index = ' + page.index);
console.log('current name = ' + page.name); console.log('current name = ' + page.name);
console.log('current path = ' + page.path); console.log('current path = ' + page.path);
...@@ -296,7 +296,7 @@ export default { ...@@ -296,7 +296,7 @@ export default {
}, },
cancel: function() { cancel: function() {
console.log('cancel'); console.log('cancel');
}, }
}); });
} }
} }
...@@ -327,7 +327,7 @@ export default { ...@@ -327,7 +327,7 @@ export default {
}, },
cancel: function() { cancel: function() {
console.log('cancel'); console.log('cancel');
}, }
}); });
} }
} }
...@@ -339,10 +339,10 @@ export default { ...@@ -339,10 +339,10 @@ export default {
**系统能力:** 以下各项对应的系统能力均为SystemCapability.ArkUI.ArkUI.Lite **系统能力:** 以下各项对应的系统能力均为SystemCapability.ArkUI.ArkUI.Lite
| 名称 | 参数类型 | 必填 | 说明 | | 名称 | 参数类型 | 必填 | 说明 |
| ------ | ------ | ---- | ---------------------------------------- | | ------ | -------- | ---- | ------------------------------------------------------------ |
| uri | string | 是 | 目标页面的uri,可以是以下的两种格式:<br/>1. 页面的绝对路径,由config.json文件中的页面列表提供。例如:<br/>- pages/index/index<br/> -pages/detail/detail<br/>2. 特定路径。如果URI为斜杠(/),则显示主页。 | | uri | string | 是 | 目标页面的uri,可以是以下的两种格式:<br/>1. 页面的绝对路径,由config.json文件中的页面列表提供。例如:<br/>- pages/index/index<br/> -pages/detail/detail<br/>2. 特定路径。如果URI为斜杠(/),则显示主页。 |
| params | Object | 否 | 表示路由跳转时要同时传递到目标页面的数据。跳转到目标页面后,使用router.getParams()获取传递的参数,此外,在类web范式中,参数也可以在页面中直接使用,如this.keyValue(keyValue为跳转时params参数中的key值),如果目标页面中已有该字段,则其值会被传入的字段值覆盖。 | | params | object | 否 | 表示路由跳转时要同时传递到目标页面的数据。跳转到目标页面后,使用router.getParams()获取传递的参数,此外,在类web范式中,参数也可以在页面中直接使用,如this.keyValue(keyValue为跳转时params参数中的key值),如果目标页面中已有该字段,则其值会被传入的字段值覆盖。 |
## BackRouterOptions ## BackRouterOptions
...@@ -351,10 +351,10 @@ export default { ...@@ -351,10 +351,10 @@ export default {
**系统能力:** 以下各项对应的系统能力有所不同,详见下表。 **系统能力:** 以下各项对应的系统能力有所不同,详见下表。
| 名称 | 参数类型 | 必填 | 说明 | | 名称 | 参数类型 | 必填 | 说明 |
| ------ | ------ | ---- | ---------------------------------------- | | ------ | -------- | ---- | ------------------------------------------------------------ |
| uri | string | 否 | 返回到指定uri的界面,如果页面栈上没有uri页面,则不响应该情况。如果uri未设置,则返回上一页。 <br>**系统能力:** SystemCapability.ArkUI.ArkUI.Full | | uri | string | 否 | 返回到指定uri的界面,如果页面栈上没有uri页面,则不响应该情况。如果uri未设置,则返回上一页。 <br>**系统能力:** SystemCapability.ArkUI.ArkUI.Full |
| params | Object | 否 | 跳转时要同时传递到目标页面的数据。 <br>**系统能力:** SystemCapability.ArkUI.ArkUI.Lite | | params | object | 否 | 跳转时要同时传递到目标页面的数据。 <br>**系统能力:** SystemCapability.ArkUI.ArkUI.Lite |
## RouterState ## RouterState
...@@ -395,6 +395,6 @@ export default { ...@@ -395,6 +395,6 @@ export default {
## ParamsInterface ## ParamsInterface
| 名称 | 参数类型 | 说明 | | 名称 | 参数类型 | 说明 |
| ------------- | ------ | ------- | | ------------- | -------- | -------------- |
| [key: string] | Object | 路由参数列表。 | | [key: string] | object | 路由参数列表。 |
...@@ -2,22 +2,21 @@ ...@@ -2,22 +2,21 @@
> **说明:** > **说明:**
> >
> - 从API Version 6开始,该模块不再维护,可以使用模块[`@ohos.data.storage`](js-apis-data-storage.md)。在API Version 9后,推荐使用新模块[`@ohos.data.preferences`](js-apis-data-preferences.md)。 > - 从API Version 6开始,该模块不再维护,可以使用模块[`@ohos.data.storage`](js-apis-data-storage.md)。在API Version 9后,推荐使用新模块[`@ohos.data.preferences`](js-apis-data-preferences.md)。
> >
> - 本模块首批接口从API version 3开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 > - 本模块首批接口从API version 3开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
> - 本模块接口仅可在FA模型下使用。 >
> - 本模块接口仅可在FA模型下使用。
## 导入模块 ## 导入模块
```js ```js
import storage from '@system.storage'; import storage from '@system.storage';
``` ```
## storage.get ## storage.get
get(Object): void get(options: GetStorageOptions): void
通过索引读取缓存中存储的值。 通过索引读取缓存中存储的值。
...@@ -25,13 +24,9 @@ get(Object): void ...@@ -25,13 +24,9 @@ get(Object): void
**参数:** **参数:**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | ------- | -------------------- | ---- | ---------- |
| key | string | 是 | 内容索引。 | | options | [GetStorageOptions](#getstorageoptions) | 是 | 接口配置信息。 |
| default | string | 否 | key不存在则返回的默认值。 |
| success | Function | 否 | 接口调用成功的回调函数,data为返回key对应的value。 |
| fail | Function | 否 | 接口调用失败的回调函数,data为错误信息,code为错误码。 |
| complete | Function | 否 | 接口调用结束的回调函数。 |
**示例:** **示例:**
...@@ -54,10 +49,9 @@ export default { ...@@ -54,10 +49,9 @@ export default {
} }
``` ```
## storage.set ## storage.set
set(Object): void get(options: SetStorageOptions): void
修改缓存中索引对应的值。 修改缓存中索引对应的值。
...@@ -65,13 +59,9 @@ set(Object): void ...@@ -65,13 +59,9 @@ set(Object): void
**参数:** **参数:**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | ------- | ------------------- | ---- | ---------- |
| key | string | 是 | 要修改的存储值的索引。 | | options | [SetStorageOptions](#setstorageoptions) | 是 | 接口配置信息。 |
| value | string | 是 | 新值。长度需小于128字节。 |
| success | Function | 否 | 接口调用成功的回调函数。 |
| fail | Function | 否 | 接口调用失败的回调函数,data为错误信息,code为错误码。 |
| complete | Function | 否 | 接口调用结束的回调函数。 |
**示例:** **示例:**
...@@ -92,10 +82,9 @@ export default { ...@@ -92,10 +82,9 @@ export default {
} }
``` ```
## storage.clear ## storage.clear
clear(Object): void clear(options?: ClearStorageOptions): void
清空缓存中存储的键值对。 清空缓存中存储的键值对。
...@@ -103,11 +92,9 @@ clear(Object): void ...@@ -103,11 +92,9 @@ clear(Object): void
**参数:** **参数:**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | ------- | ------------------------------------------- | ---- | -------------- |
| success | Function | 否 | 接口调用成功的回调函数。 | | options | [ClearStorageOptions](#clearstorageoptions) | 否 | 接口配置信息。 |
| fail | Function | 否 | 接口调用失败的回调函数,data为错误信息,code为错误码。 |
| complete | Function | 否 | 接口调用结束的回调函数。 |
**示例:** **示例:**
...@@ -126,10 +113,9 @@ export default { ...@@ -126,10 +113,9 @@ export default {
} }
``` ```
## storage.delete ## storage.delete
delete(Object): void delete(options: DeleteStorageOptions): void
删除缓存中索引对应的键值对。 删除缓存中索引对应的键值对。
...@@ -137,12 +123,9 @@ delete(Object): void ...@@ -137,12 +123,9 @@ delete(Object): void
**参数:** **参数:**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | ------- | --------------------------------------------- | ---- | -------------- |
| key | string | 是 | 内容索引。 | | options | [DeleteStorageOptions](#deletestorageoptions) | 是 | 接口配置信息。 |
| success | Function | 否 | 接口调用成功的回调函数。 |
| fail | Function | 否 | 接口调用失败的回调函数,data为错误信息,code为错误码。 |
| complete | Function | 否 | 接口调用结束的回调函数。 |
**示例:** **示例:**
...@@ -160,4 +143,52 @@ export default { ...@@ -160,4 +143,52 @@ export default {
}); });
} }
} }
``` ```
\ No newline at end of file
## GetStorageOptions
**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core
| 名称 | 类型 | 必填 | 说明 |
| -------- | ---------------- | ---- | ------------------- |
| key | string | 是 | 内容索引。 |
| default | string | 否 | key不存在则返回的默认值。 |
| success | (data: any) => void | 否 | 接口调用成功的回调函数,data为返回key对应的value。 |
| fail | (data: string, code: number) => void | 否 | 接口调用失败的回调函数,data为错误信息,code为错误码。 |
| complete | () => void | 否 | 接口调用结束的回调函数。 |
## SetStorageOptions
**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core
| 名称 | 类型 | 必填 | 说明 |
| -------- | ------------------- | ---- | -------------------- |
| key | string | 是 | 要修改的存储值的索引。 |
| value | string | 是 | 新值。长度需小于128字节。 |
| success | () => void | 否 | 接口调用成功的回调函数。 |
| fail | (data: string, code: number) => void | 否 | 接口调用失败的回调函数,data为错误信息,code为错误码。 |
| complete | () => void | 否 | 接口调用结束的回调函数。 |
## ClearStorageOptions
**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core
| 名称 | 类型 | 必填 | 说明 |
| -------- | --------------------- | ---- | -------------------- |
| success | () => void | 否 | 接口调用成功的回调函数。 |
| fail | (data: string, code: number) => void | 否 | 接口调用失败的回调函数,data为错误信息,code为错误码。 |
| complete | () => void | 否 | 接口调用结束的回调函数。 |
## DeleteStorageOptions
**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core
| 名称 | 类型 | 必填 | 说明 |
| -------- | -------------------- | ---- | ------------------ |
| key | string | 是 | 内容索引。 |
| success | () => void | 否 | 接口调用成功的回调函数。 |
| fail | (data: string, code: number) => void | 否 | 接口调用失败的回调函数,data为错误信息,code为错误码。 |
| complete | () => void | 否 | 接口调用结束的回调函数。 |
\ No newline at end of file
...@@ -31,7 +31,7 @@ URLParams的构造函数。 ...@@ -31,7 +31,7 @@ URLParams的构造函数。
let objectParams = new Url.URLParams([ ['user1', 'abc1'], ['query2', 'first2'], ['query3', 'second3'] ]); let objectParams = new Url.URLParams([ ['user1', 'abc1'], ['query2', 'first2'], ['query3', 'second3'] ]);
let objectParams1 = new Url.URLParams({"fod" : '1' , "bard" : '2'}); let objectParams1 = new Url.URLParams({"fod" : '1' , "bard" : '2'});
let objectParams2 = new Url.URLParams('?fod=1&bard=2'); let objectParams2 = new Url.URLParams('?fod=1&bard=2');
let urlObject = new Url.URL('https://developer.mozilla.org/?fod=1&bard=2'); let urlObject = Url.URL.parseURL('https://developer.mozilla.org/?fod=1&bard=2');
let params = new Url.URLParams(urlObject.search); let params = new Url.URLParams(urlObject.search);
``` ```
...@@ -54,7 +54,7 @@ append(name: string, value: string): void ...@@ -54,7 +54,7 @@ append(name: string, value: string): void
**示例:** **示例:**
```js ```js
let urlObject = new Url.URL('https://developer.exampleUrl/?fod=1&bard=2'); let urlObject = Url.URL.parseURL('https://developer.exampleUrl/?fod=1&bard=2');
let paramsObject = new Url.URLParams(urlObject.search.slice(1)); let paramsObject = new Url.URLParams(urlObject.search.slice(1));
paramsObject.append('fod', '3'); paramsObject.append('fod', '3');
``` ```
...@@ -80,6 +80,9 @@ delete(name: string): void ...@@ -80,6 +80,9 @@ delete(name: string): void
let urlObject = new Url.URL('https://developer.exampleUrl/?fod=1&bard=2'); let urlObject = new Url.URL('https://developer.exampleUrl/?fod=1&bard=2');
let paramsObject = new Url.URLParams(urlObject.search.slice(1)); let paramsObject = new Url.URLParams(urlObject.search.slice(1));
paramsObject.delete('fod'); paramsObject.delete('fod');
let urlObject = Url.URL.parseURL('https://developer.exampleUrl/?fod=1&bard=2');
let paramsobject = new Url.URLParams(urlObject.search.slice(1));
paramsobject.delete('fod');
``` ```
...@@ -106,7 +109,7 @@ getAll(name: string): string[] ...@@ -106,7 +109,7 @@ getAll(name: string): string[]
**示例:** **示例:**
```js ```js
let urlObject = new Url.URL('https://developer.exampleUrl/?fod=1&bard=2'); let urlObject = Url.URL.parseURL('https://developer.exampleUrl/?fod=1&bard=2');
let params = new Url.URLParams(urlObject.search.slice(1)); let params = new Url.URLParams(urlObject.search.slice(1));
params.append('fod', '3'); // Add a second value for the fod parameter. params.append('fod', '3'); // Add a second value for the fod parameter.
console.log(params.getAll('fod').toString()) // Output ["1","3"]. console.log(params.getAll('fod').toString()) // Output ["1","3"].
...@@ -131,7 +134,7 @@ entries(): IterableIterator<[string, string]> ...@@ -131,7 +134,7 @@ entries(): IterableIterator<[string, string]>
```js ```js
let searchParamsObject = new Url.URLParams("keyName1=valueName1&keyName2=valueName2"); let searchParamsObject = new Url.URLParams("keyName1=valueName1&keyName2=valueName2");
for (var pair of searchParamsObject .entries()) { // Show keyName/valueName pairs for (var pair of searchParamsObject.entries()) { // Show keyName/valueName pairs
console.log(pair[0]+ ', '+ pair[1]); console.log(pair[0]+ ', '+ pair[1]);
} }
``` ```
...@@ -163,9 +166,9 @@ forEach(callbackFn: (value: string, key: string, searchParams: this) => void, th ...@@ -163,9 +166,9 @@ forEach(callbackFn: (value: string, key: string, searchParams: this) => void, th
**示例:** **示例:**
```js ```js
const myURLObject = new Url.URL('https://developer.exampleUrl/?fod=1&bard=2'); const myURLObject = Url.URL.parseURL('https://developer.exampleUrl/?fod=1&bard=2');
myURLObject.searchParams.forEach((value, name, searchParams) => { myURLObject.params.forEach((value, name, searchParams) => {
console.log(name, value, myURLObject.searchParams === searchParams); console.log(name, value, myURLObject.params === searchParams);
}); });
``` ```
...@@ -223,7 +226,7 @@ has(name: string): boolean ...@@ -223,7 +226,7 @@ has(name: string): boolean
**示例:** **示例:**
```js ```js
let urlObject = new Url.URL('https://developer.exampleUrl/?fod=1&bard=2'); let urlObject = Url.URL.parseURL('https://developer.exampleUrl/?fod=1&bard=2');
let paramsObject = new Url.URLParams(urlObject.search.slice(1)); let paramsObject = new Url.URLParams(urlObject.search.slice(1));
paramsObject.has('bard') === true; paramsObject.has('bard') === true;
``` ```
...@@ -247,7 +250,7 @@ set(name: string, value: string): void ...@@ -247,7 +250,7 @@ set(name: string, value: string): void
**示例:** **示例:**
```js ```js
let urlObject = new Url.URL('https://developer.exampleUrl/?fod=1&bard=2'); let urlObject = Url.URL.parseURL('https://developer.exampleUrl/?fod=1&bard=2');
let paramsObject = new Url.URLParams(urlObject.search.slice(1)); let paramsObject = new Url.URLParams(urlObject.search.slice(1));
paramsObject.set('baz', '3'); // Add a third parameter. paramsObject.set('baz', '3'); // Add a third parameter.
``` ```
...@@ -359,7 +362,7 @@ toString(): string ...@@ -359,7 +362,7 @@ toString(): string
**示例:** **示例:**
```js ```js
let url = new Url.URL('https://developer.exampleUrl/?fod=1&bard=2'); let url = Url.URL.parseURL('https://developer.exampleUrl/?fod=1&bard=2');
let params = new Url.URLParams(url.search.slice(1)); let params = new Url.URLParams(url.search.slice(1));
params.append('fod', '3'); params.append('fod', '3');
console.log(params.toString()); console.log(params.toString());
...@@ -423,8 +426,16 @@ new Url.URL('https://www.example.com', ); // Output https://www.example.com/ ...@@ -423,8 +426,16 @@ new Url.URL('https://www.example.com', ); // Output https://www.example.com/
new Url.URL('https://www.example.com', b); // Output https://www.example.com/ new Url.URL('https://www.example.com', b); // Output https://www.example.com/
``` ```
### parseURL<sup>9+</sup> ### constructor<sup>9+</sup>
constructor()
URL的无参构造函数。parseURL调用后返回一个URL对象,不单独使用。
**系统能力:** SystemCapability.Utils.Lang
### parseURL<sup>9+</sup>
static parseURL(url : string, base?: string | URL): URL static parseURL(url : string, base?: string | URL): URL
URL静态成员函数。 URL静态成员函数。
...@@ -442,7 +453,8 @@ URL静态成员函数。 ...@@ -442,7 +453,8 @@ URL静态成员函数。
```js ```js
let mm = 'https://username:password@host:8080'; let mm = 'https://username:password@host:8080';
Url.URL.parseURL(mm); // Output 'https://username:password@host:8080/'; let url = Url.URL.parseURL(mm);
url.toString(); // Output 'https://username:password@host:8080/';
``` ```
### tostring ### tostring
...@@ -462,7 +474,7 @@ toString(): string ...@@ -462,7 +474,7 @@ toString(): string
**示例:** **示例:**
```js ```js
const url = new Url.URL('https://username:password@host:8080/directory/file?query=pppppp#qwer=da'); const url = Url.URL.parseURL('https://username:password@host:8080/directory/file?query=pppppp#qwer=da');
url.toString(); url.toString();
``` ```
...@@ -482,7 +494,7 @@ toJSON(): string ...@@ -482,7 +494,7 @@ toJSON(): string
**示例:** **示例:**
```js ```js
const url = new Url.URL('https://username:password@host:8080/directory/file?query=pppppp#qwer=da'); const url = Url.URL.parseURL('https://username:password@host:8080/directory/file?query=pppppp#qwer=da');
url.toJSON(); url.toJSON();
``` ```
...@@ -624,7 +636,7 @@ entries(): IterableIterator<[string, string]> ...@@ -624,7 +636,7 @@ entries(): IterableIterator<[string, string]>
```js ```js
let searchParamsObject = new Url.URLSearchParams("keyName1=valueName1&keyName2=valueName2"); let searchParamsObject = new Url.URLSearchParams("keyName1=valueName1&keyName2=valueName2");
for (var pair of searchParamsObject .entries()) { // Show keyName/valueName pairs for (var pair of searchParamsObject.entries()) { // Show keyName/valueName pairs
console.log(pair[0]+ ', '+ pair[1]); console.log(pair[0]+ ', '+ pair[1]);
} }
``` ```
......
...@@ -27,7 +27,7 @@ Image(src: string | PixelMap | Resource) ...@@ -27,7 +27,7 @@ Image(src: string | PixelMap | Resource)
| 参数名 | 参数类型 | 必填 | 参数描述 | | 参数名 | 参数类型 | 必填 | 参数描述 |
| ------ | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ | | ------ | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
| src | string\|&nbsp;[PixelMap](../apis/js-apis-image.md#pixelmap7)&nbsp;\|&nbsp;[Resource](ts-types.md#resource类型) | 是 | 图片的数据源,支持本地图片和网络图片。<br/>当使用相对路径引用图片资源时,例如`Image("common/test.jpg")`,不支持跨包/跨模块调用该Image组件,建议使用`$r`方式来管理需全局使用的图片资源。<br/>\- 支持的图片格式包括png、jpg、bmp、svg和gif。<br/>\- 支持`Base64`字符串。格式`data:image/[png\|jpeg\|bmp\|webp];base64,[base64 data]`, 其中`[base64 data]``Base64`字符串数据。<br/>\- 支持`datashare://`路径前缀的字符串,用于访问通过data&nbsp;ability提供的图片路径。<br/>\- 支持file:///data/storage路径前缀的字符串,用于读取本应用安装目录下files文件夹下的图片资源。需要保证目录包路径下的文件有可读权限。 | | src | string\|&nbsp;[PixelMap](../apis/js-apis-image.md#pixelmap7)&nbsp;\|&nbsp;[Resource](ts-types.md#resource类型) | 是 | 图片的数据源,支持本地图片和网络图片。<br/>当使用相对路径引用图片资源时,例如`Image("common/test.jpg")`,不支持跨包/跨模块调用该Image组件,建议使用`$r`方式来管理需全局使用的图片资源。<br/>\- 支持的图片格式包括png、jpg、bmp、svg和gif。<br/>\- 支持`Base64`字符串。格式`data:image/[png\|jpeg\|bmp\|webp];base64,[base64 data]`, 其中`[base64 data]``Base64`字符串数据。<br/>\- 支持`datashare://`路径前缀的字符串,用于访问通过data&nbsp;ability提供的图片路径。图片加载前需要申请[媒体库功能相关权限](../../file-management/medialibrary-overview.md#申请媒体库功能相关权限)<br/>\- 支持file:///data/storage路径前缀的字符串,用于读取本应用安装目录下files文件夹下的图片资源。需要保证目录包路径下的文件有可读权限。 |
## 属性 ## 属性
......
...@@ -1907,7 +1907,7 @@ onPermissionRequest(callback: (event?: { request: PermissionRequest }) => void) ...@@ -1907,7 +1907,7 @@ onPermissionRequest(callback: (event?: { request: PermissionRequest }) => void)
onContextMenuShow(callback: (event?: { param: WebContextMenuParam, result: WebContextMenuResult }) => boolean) onContextMenuShow(callback: (event?: { param: WebContextMenuParam, result: WebContextMenuResult }) => boolean)
长按特定元素(例如图片,链接),跳出菜单。 长按特定元素(例如图片,链接)或鼠标右键,跳出菜单。
**参数:** **参数:**
...@@ -2781,9 +2781,44 @@ grant(resources: Array\<string\>): void ...@@ -2781,9 +2781,44 @@ grant(resources: Array\<string\>): void
| --------- | --------------- | ---- | ---- | ------------- | | --------- | --------------- | ---- | ---- | ------------- |
| resources | Array\<string\> | 是 | - | 网页所请求的权限资源列表。 | | resources | Array\<string\> | 是 | - | 网页所请求的权限资源列表。 |
## ContextMenuSourceType<sup>9+</sup>枚举说明
| 名称 | 描述 |
| -------------------- | ---------- |
| None | 其他事件来源。 |
| Mouse | 鼠标事件。 |
| LongPress | 长按事件。 |
## ContextMenuMediaType<sup>9+</sup>枚举说明
| 名称 | 描述 |
| ------------ | ----------- |
| None | 非特殊媒体或其他媒体类型。 |
| Image | 图片。 |
## ContextMenuInputFieldType<sup>9+</sup>枚举说明
| 名称 | 描述 |
| ------------ | ----------- |
| None | 非输入框。 |
| PlainText | 纯文本类型,包括text、search、email等。 |
| Password | 密码类型。 |
| Number | 数字类型。 |
| Telephone | 电话号码类型。 |
| Other | 其他类型。 |
## ContextMenuEditStateFlags<sup>9+</sup>枚举说明
| 名称 | 描述 |
| ------------ | ----------- |
| NONE | 不可编辑。 |
| CAN_CUT | 支持剪切。 |
| CAN_COPY | 支持拷贝。 |
| CAN_PASTE | 支持粘贴。 |
| CAN_SELECT_ALL | 支持全选。 |
## WebContextMenuParam<sup>9+</sup> ## WebContextMenuParam<sup>9+</sup>
实现长按页面元素出来的菜单信息。示例代码参考[onContextMenuShow事件](#oncontextmenushow9) 实现长按页面元素或鼠标右键弹出来的菜单信息。示例代码参考[onContextMenuShow事件](#oncontextmenushow9)
### x<sup>9+</sup> ### x<sup>9+</sup>
...@@ -2857,9 +2892,81 @@ existsImageContents(): boolean ...@@ -2857,9 +2892,81 @@ existsImageContents(): boolean
| ------- | ------------------------- | | ------- | ------------------------- |
| boolean | 长按位置中有图片返回true,否则返回false。 | | boolean | 长按位置中有图片返回true,否则返回false。 |
### getMediaType<sup>9+</sup>
getMediaType(): ContextMenuMediaType
获取网页元素媒体类型。
**返回值:**
| 类型 | 说明 |
| ---------------------------------------- | ----------- |
| [ContextMenuMediaType](#contextmenumediatype9枚举说明) | 网页元素媒体类型。 |
### getSelectionText<sup>9+</sup>
getSelectionText(): string
获取选中文本。
**返回值:**
| 类型 | 说明 |
| ------- | ------------------------- |
| string | 菜单上下文选中文本内容,不存在则返回空。 |
### getSourceType<sup>9+</sup>
getSourceType(): ContextMenuSourceType
获取菜单事件来源。
**返回值:**
| 类型 | 说明 |
| ---------------------------------------- | ----------- |
| [ContextMenuSourceType](#contextmenusourcetype9枚举说明) | 菜单事件来源。 |
### getInputFieldType<sup>9+</sup>
getInputFieldType(): ContextMenuInputFieldType
获取网页元素输入框类型。
**返回值:**
| 类型 | 说明 |
| ---------------------------------------- | ----------- |
| [ContextMenuInputFieldType](#contextmenuinputfieldtype9枚举说明) | 输入框类型。 |
### isEditable<sup>9+</sup>
isEditable(): boolean
获取网页元素是否可编辑标识。
**返回值:**
| 类型 | 说明 |
| ------- | ------------------------- |
| boolean | 网页元素可编辑返回true,不可编辑返回false。 |
### getEditStateFlags<sup>9+</sup>
getEditStateFlags(): number
获取网页元素可编辑标识。
**返回值:**
| 类型 | 说明 |
| ------- | ------------------------- |
| number | 网页元素可编辑标识,参照[ContextMenuEditStateFlags](#contextmenueditstateflags9枚举说明)。 |
## WebContextMenuResult<sup>9+</sup> ## WebContextMenuResult<sup>9+</sup>
实现长按页面元素出来的菜单所执行的响应事件。示例代码参考[onContextMenuShow事件](#oncontextmenushow9) 实现长按页面元素或鼠标右键弹出来的菜单所执行的响应事件。示例代码参考[onContextMenuShow事件](#oncontextmenushow9)
### closeContextMenu<sup>9+</sup> ### closeContextMenu<sup>9+</sup>
...@@ -2873,6 +2980,30 @@ copyImage(): void ...@@ -2873,6 +2980,30 @@ copyImage(): void
WebContextMenuParam有图片内容则复制图片。 WebContextMenuParam有图片内容则复制图片。
### copy<sup>9+</sup>
copy(): void
执行与此上下文菜单相关的拷贝操作。
### paste<sup>9+</sup>
paste(): void
执行与此上下文菜单相关的粘贴操作。
### cut<sup>9+</sup>
cut(): void
执行与此上下文菜单相关的剪切操作。
### selectAll<sup>9+</sup>
selectAll(): void
执行与此上下文菜单相关的全选操作。
## JsGeolocation ## JsGeolocation
Web组件返回授权或拒绝权限功能的对象。示例代码参考[onGeolocationShow事件](#ongeolocationshow) Web组件返回授权或拒绝权限功能的对象。示例代码参考[onGeolocationShow事件](#ongeolocationshow)
......
...@@ -134,7 +134,7 @@ struct AlphabetIndexerSample { ...@@ -134,7 +134,7 @@ struct AlphabetIndexerSample {
.selectedFont({ size: 16, weight: FontWeight.Bolder }) // 选中项字体样式 .selectedFont({ size: 16, weight: FontWeight.Bolder }) // 选中项字体样式
.popupFont({ size: 30, weight: FontWeight.Bolder }) // 弹出框内容的字体样式 .popupFont({ size: 30, weight: FontWeight.Bolder }) // 弹出框内容的字体样式
.itemSize(28) // 每一项的尺寸大小 .itemSize(28) // 每一项的尺寸大小
.alignStyle(IndexerAlign.Left) // 弹出框在索引条侧弹出 .alignStyle(IndexerAlign.Left) // 弹出框在索引条侧弹出
.onSelect((index: number) => { .onSelect((index: number) => {
console.info(this.value[index] + ' Selected!') console.info(this.value[index] + ' Selected!')
}) })
......
...@@ -20,7 +20,7 @@ animateTo(value: AnimateParam, event: () => void): void ...@@ -20,7 +20,7 @@ animateTo(value: AnimateParam, event: () => void): void
| -------- | -------- | -------- | | -------- | -------- | -------- |
| duration | number | 动画持续时间,单位为毫秒。<br/>默认值:1000 | | duration | number | 动画持续时间,单位为毫秒。<br/>默认值:1000 |
| tempo | number | 动画的播放速度,值越大动画播放越快,值越小播放越慢,为0时无动画效果。<br/>默认值:1.0 | | tempo | number | 动画的播放速度,值越大动画播放越快,值越小播放越慢,为0时无动画效果。<br/>默认值:1.0 |
| curve | Curve&nbsp;\|&nbsp;Curves | 动画曲线。<br/>默认值:Curve.Linear | | curve | [Curve](ts-appendix-enums.md#curve)&nbsp;\|&nbsp;[ICurve](../apis/js-apis-curve.md#icurve)&nbsp;\|&nbsp;string | 动画曲线。<br/>默认值:Curve.Linear |
| delay | number | 单位为ms(毫秒),默认不延时播放。<br/>默认值:0 | | delay | number | 单位为ms(毫秒),默认不延时播放。<br/>默认值:0 |
| iterations | number | 默认播放一次,设置为-1时表示无限次播放。<br/>默认值:1 | | iterations | number | 默认播放一次,设置为-1时表示无限次播放。<br/>默认值:1 |
| playMode | [PlayMode](ts-appendix-enums.md#playmode) | 设置动画播放模式,默认播放完成后重头开始播放。<br/>默认值:PlayMode.Normal | | playMode | [PlayMode](ts-appendix-enums.md#playmode) | 设置动画播放模式,默认播放完成后重头开始播放。<br/>默认值:PlayMode.Normal |
......
...@@ -18,7 +18,7 @@ Internal error. ...@@ -18,7 +18,7 @@ Internal error.
NA NA
## 100002 路由输入的uri错误 ## 100002 路由页面跳转时输入的uri错误
错误信息 错误信息
...@@ -54,7 +54,7 @@ Page stack error. The pages are pushed too much. ...@@ -54,7 +54,7 @@ Page stack error. The pages are pushed too much.
请清除多余或无效的页面。 请清除多余或无效的页面。
## 200002 路由输入的uri错误 ## 200002 路由页面替换时输入的uri错误
**错误信息** **错误信息**
......
...@@ -407,6 +407,8 @@ ...@@ -407,6 +407,8 @@
} }
``` ```
![zh-cn_image_0000001215199399](figures/zh-cn_image_0000001215199399.png)
5. 使用自定义构造函数\@Builder简化代码。可以发现,每个成分表中的成分单元其实都是一样的UI结构。 5. 使用自定义构造函数\@Builder简化代码。可以发现,每个成分表中的成分单元其实都是一样的UI结构。
![zh-cn_image_0000001169599582](figures/zh-cn_image_0000001169599582.png) ![zh-cn_image_0000001169599582](figures/zh-cn_image_0000001169599582.png)
......
## cl.multimedia.av_session.001 av_session所有接口更换为系统接口
所有av_session的接口变更为SystemApi。
**变更影响**
非系统应用无法调用系统接口,如调用方为非系统应用或未申请SystemApi相关权限,将无法调用接口。
**关键的接口/组件变更**
所有接口均变更为SystemApi,接口明细如下:
| 接口、枚举或变量名 | 类型 | 是否为SystemApi |
| -------- | -------- | ------- |
| SessionToken | interface | 是 |
| AVMetadata | interface | 是 |
| AVPlaybackState | interface | 是 |
| PlaybackPosition | interface | 是 |
| OutputDeviceInfo | interface | 是 |
| AVSessionDescriptor | interface | 是 |
| AVSessionController | interface | 是 |
| AVControlCommand | interface | 是 |
| createAVSession | function | 是 |
| getAllSessionDescriptors | function | 是 |
| createController | function | 是 |
| castAudio | function | 是 |
| on | function | 是 |
| off | function | 是 |
| sendSystemAVKeyEvent | function | 是 |
| sendSystemControlCommand | function | 是 |
| sessionId | variable | 是 |
| setAVMetadata | function | 是 |
| setAVPlaybackState | function | 是 |
| setLaunchAbility | function | 是 |
| getController | function | 是 |
| getOutputDevice | function | 是 |
| activate | function | 是 |
| deactivate | function | 是 |
| destroy | function | 是 |
| getAVPlaybackState | function | 是 |
| getAVMetadata | function | 是 |
| getOutputDevice | function | 是 |
| sendAVKeyEvent | function | 是 |
| getLaunchAbility | function | 是 |
| getRealPlaybackPositionSync | function | 是 |
| isActive | function | 是 |
| getValidCommands | function | 是 |
| sendControlCommand | function | 是 |
| AVSessionType | type | 是 |
| AVControlCommandType | type | 是 |
| LoopMode | enum | 是 |
| PlaybackState | enum | 是 |
| AVSessionErrorCode | enum | 是 |
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册