鸿蒙开发系统基础能力:【@ohos.inputMethodEngine (输入法服务)】

news2025/1/15 12:58:43

输入法服务

icon-note.gif 说明:  本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。

导入模块

import inputMethodEngine from '@ohos.inputMethodEngine';

inputMethodEngine

常量值。

系统能力:以下各项对应的系统能力均为SystemCapability.Miscservices.InputMethodFramework

名称参数类型可读可写说明
ENTER_KEY_TYPE_UNSPECIFIEDnumber无功能键。
ENTER_KEY_TYPE_GOnumber“前往”功能键。
ENTER_KEY_TYPE_SEARCHnumber“搜索”功能键。
ENTER_KEY_TYPE_SENDnumber“发送”功能键。
ENTER_KEY_TYPE_NEXTnumber“下一个”功能键。
ENTER_KEY_TYPE_DONEnumber“回车”功能键。
ENTER_KEY_TYPE_PREVIOUSnumber“前一个”功能键。
PATTERN_NULLnumber无特殊性编辑框。
PATTERN_TEXTnumber文本编辑框。
PATTERN_NUMBERnumber数字编辑框。
PATTERN_PHONEnumber电话号码编辑框。
PATTERN_DATETIMEnumber日期编辑框。
PATTERN_EMAILnumber邮件编辑框。
PATTERN_URInumber超链接编辑框。
PATTERN_PASSWORDnumber密码编辑框。
OPTION_ASCIInumber允许输入ASCII值。
OPTION_NONEnumber不指定编辑框输入属性。
OPTION_AUTO_CAP_CHARACTERSnumber允许输入字符。
OPTION_AUTO_CAP_SENTENCESnumber允许输入句子。
OPTION_AUTO_WORDSnumber允许输入单词。
OPTION_MULTI_LINEnumber允许输入多行。
OPTION_NO_FULLSCREENnumber半屏样式。
FLAG_SELECTINGnumber编辑框处于选择状态。
FLAG_SINGLE_LINEnumber编辑框为单行。
DISPLAY_MODE_PARTnumber编辑框显示为半屏。
DISPLAY_MODE_FULLnumber编辑框显示为全屏。

inputMethodEngine.getInputMethodEngine

getInputMethodEngine(): InputMethodEngine

获取服务端实例。

系统能力: SystemCapability.Miscservices.InputMethodFramework

返回值:

类型说明
[InputMethodEngine]服务端实例。

示例:

var InputMethodEngine = inputMethodEngine.getInputMethodEngine();

inputMethodEngine.createKeyboardDelegate

createKeyboardDelegate(): KeyboardDelegate

获取客户端监听实例。

系统能力: SystemCapability.Miscservices.InputMethodFramework

返回值:

类型说明
[KeyboardDelegate]客户端监听实例。

示例:

var KeyboardDelegate = inputMethodEngine.createKeyboardDelegate();

InputMethodEngine

下列API示例中都需使用[getInputMethodEngine]回调获取到InputMethodEngine实例,再通过此实例调用对应方法。

on(‘inputStart’)

on(type: ‘inputStart’, callback: (kbController: KeyboardController, textInputClient: TextInputClient) => void): void

订阅输入法绑定成功事件,使用callback回调返回输入法操作相关实例。

系统能力: SystemCapability.Miscservices.InputMethodFramework

参数:

参数名类型必填说明
typestring设置监听类型。 -type为‘inputStart’时表示订阅输入法绑定。
callback[KeyboardController], [TextInputClient]回调返回输入法操作相关实例。

示例:

InputMethodEngine.on('inputStart', (kbController, textInputClient) => {
    KeyboardController = kbController;
    TextInputClient = textInputClient;
});

off(‘inputStart’)

off(type: ‘inputStart’, callback?: (kbController: KeyboardController, textInputClient: TextInputClient) => void): void

取消订阅输入法绑定成功事件。

系统能力: SystemCapability.Miscservices.InputMethodFramework

参数:

参数名类型必填说明
typestring设置监听类型。 -type为‘inputStart’时表示订阅输入法绑定。
callback[KeyboardController], [TextInputClient]回调返回输入法操作相关实例。

示例:

InputMethodEngine.off('inputStart');

on(‘keyboardShow’|‘keyboardHide’)

on(type: ‘keyboardShow’|‘keyboardHide’, callback: () => void): void

订阅输入法事件。

系统能力: SystemCapability.Miscservices.InputMethodFramework

参数:

参数名类型必填说明
typestring设置监听类型。 - type为’keyboardShow’,表示订阅输入法显示。 - type为’keyboardHide’,表示订阅输入法隐藏。
callbackvoid回调函数。

示例:

InputMethodEngine.on('keyboardShow', (err) => {
    console.info('keyboardShow');
});

off(‘keyboardShow’|‘keyboardHide’)

off(type: ‘keyboardShow’|‘keyboardHide’, callback?: () => void): void

取消订阅输入法事件。

系统能力: SystemCapability.Miscservices.InputMethodFramework

参数:

参数名类型必填说明
typestring设置监听类型。 - type为’keyboardShow’,表示订阅输入法显示。 - type为’keyboardHide’,表示订阅输入法隐藏。
callbackvoid回调函数。

示例:

InputMethodEngine.off('keyboardShow');

KeyboardDelegate

下列API示例中都需使用[createKeyboardDelegate]回调获取到KeyboardDelegate实例,再通过此实例调用对应方法。

on(‘keyDown’|‘keyUp’)

on(type: ‘keyDown’|‘keyUp’, callback: (event: KeyEvent) => boolean): void

订阅硬键盘事件,使用callback回调返回按键信息。

系统能力: SystemCapability.Miscservices.InputMethodFramework

参数:

参数名类型必填说明
typestring设置监听类型。 - type为’keyDown’,表示订阅硬键盘按下。 - type为’keyUp’,表示订阅硬键盘抬起。
callback[KeyEvent]回调返回按键信息。

示例:

KeyboardDelegate.on('keyDown', (event) => {
    console.info('keyDown');
});

off(‘keyDown’|‘keyUp’)

off(type: ‘keyDown’|‘keyUp’, callback?: (event: KeyEvent) => boolean): void

取消订阅硬键盘事件。

系统能力: SystemCapability.Miscservices.InputMethodFramework

参数:

参数名类型必填说明
typestring设置监听类型。 - type为’keyDown’,表示订阅硬键盘按下。 - type为’keyUp’,表示订阅硬键盘抬起。
callback[KeyEvent]回调返回按键信息。

示例:

KeyboardDelegate.off('keyDown');

on(‘cursorContextChange’)

on(type: ‘cursorContextChange’, callback: (x: number, y:number, height:number) => void): void

订阅光标变化事件,使用callback回调返回光标信息。

系统能力: SystemCapability.Miscservices.InputMethodFramework

参数:

| 参数名   | 类型   | 必填 | 说明                                                         |
| -------- | ------ | ---- | ------------------------------------------------------------ |
| type     | string | 是   | 光标变化事件。<br/>-type为’cursorContextChange‘时,表示光标变化。 |
| callback | number | 是   | 回调返回光标信息。                                           |

示例:

```js
KeyboardDelegate.on('cursorContextChange', (x, y, height) => {
    console.info('cursorContextChange');
});
```

off(‘cursorContextChange’)

off(type: ‘cursorContextChange’, callback?: (x: number, y:number, height:number) => void): void

取消订阅光标变化事件。

系统能力: SystemCapability.Miscservices.InputMethodFramework

参数:

| 参数名   | 类型                 | 必填 | 说明                     |
| -------- | -------------------- | ---- | ------------------------ |
| type     | string       | 是   | 光标变化事件。<br/>-type为’cursorContextChange‘时,表示光标变化。 |
| callback | number | 否 | 回调返回光标信息。 |

示例:

```js
KeyboardDelegate.off('cursorContextChange');
```

on(‘selectionChange’)

on(type: ‘selectionChange’, callback: (oldBegin: number, oldEnd: number, newBegin: number, newEnd: number) => void): void

订阅文本选择变化事件,使用callback回调返回文本选择信息。

系统能力: SystemCapability.Miscservices.InputMethodFramework

参数:

| 参数名   | 类型   | 必填 | 说明                                                         |
| -------- | ------ | ---- | ------------------------------------------------------------ |
| type     | string | 是   | 文本选择变化事件。<br/>-type为’selectionChange‘时,表示选择文本变化。 |
| callback | number | 是   | 回调返回文本选择信息。                                       |

示例:

```js
KeyboardDelegate.on('selectionChange', (oldBegin, oldEnd, newBegin, newEnd) => {
    console.info('selectionChange');
});
```

off(‘selectionChange’)

off(type: ‘selectionChange’, callback?: (oldBegin: number, oldEnd: number, newBegin: number, newEnd: number) => void): void

取消订阅文本选择变化事件。

系统能力: SystemCapability.Miscservices.InputMethodFramework

参数:

| 参数名   | 类型                 | 必填 | 说明                     |
| -------- | -------------------- | ---- | ------------------------ |
| type     | string                  | 是   | 文本选择变化事件。<br/>-type为’selectionChange‘时,表示选择文本变化。 |
| callback | number | 否 | 回调返回文本选择信息。 |

示例:

```js
KeyboardDelegate.off('selectionChange');
```

on(‘textChange’)

on(type: ‘textChange’, callback: (text: string) => void): void

订阅文本变化事件,使用callback回调返回当前文本内容。

系统能力: SystemCapability.Miscservices.InputMethodFramework

参数:

| 参数名   | 类型                            | 必填 | 说明                                                         |
| -------- | ------------------------------- | ---- | ------------------------------------------------------------ |
| type     | string                  | 是   | 文本变化事件。<br/>-type为’textChange‘时,表示当前文本变化。 |
| callback | string | 是 | 回调返回当前文本内容。 |

示例:

```js
KeyboardDelegate.on('textChange', (text) => {
    console.info('textChange');
});
```

off(‘textChange’)

off(type: ‘textChange’, callback?: (text: string) => void): void

取消订阅文本变化事件。

系统能力: SystemCapability.Miscservices.InputMethodFramework

参数:

| 参数名   | 类型                 | 必填 | 说明                     |
| -------- | -------------------- | ---- | ------------------------ |
| type     | string                  | 是   | 文本变化事件。<br/>-type为’textChange‘时,表示当前文本变化。 |
| callback | string | 否 | 回调返回当前文本内容。 |

示例:

```js
KeyboardDelegate.off('textChange');
```

KeyboardController

下列API示例中都需使用[inputStart]回调获取到KeyboardController实例,再通过此实例调用对应方法。

hideKeyboard

hideKeyboard(callback: AsyncCallback): void

隐藏输入法。

系统能力: SystemCapability.Miscservices.InputMethodFramework

参数:

参数名类型必填说明
callbackAsyncCallback回调函数

示例:

 KeyboardController.hideKeyboard(()=>{
 });

hideKeyboard

hideKeyboard(): Promise

隐藏输入法。

系统能力: SystemCapability.Miscservices.InputMethodFramework

返回值:

类型说明
Promise回调函数

示例:

 KeyboardController.hideKeyboard();

TextInputClient

下列API示例中都需使用[inputStart]回调获取到TextInputClient实例,再通过此实例调用对应方法。

getForward

getForward(length:number, callback: AsyncCallback): void

获取光标前固定长度的文本。

系统能力: SystemCapability.Miscservices.InputMethodFramework

参数:

参数名类型必填说明
lengthnumber文本长度。
callbackAsyncCallback返回文本。

示例:

 TextInputClient.getForward(5,(text) =>{
   console.info("text = " + text);
 });

getForward

getForward(length:number): Promise

获取光标前固定长度的文本。

系统能力: SystemCapability.Miscservices.InputMethodFramework

参数:

参数名类型必填说明
lengthnumber文本长度。

返回值:

类型说明
Promise返回文本。

示例:

 var text = TextInputClient.getForward(5);
 console.info("text = " + text);

getBackward

getBackward(length:number, callback: AsyncCallback): void

获取光标后固定长度的文本。

系统能力: SystemCapability.Miscservices.InputMethodFramework

参数:

参数名类型必填说明
lengthnumber文本长度。
callbackAsyncCallback返回文本。

示例:

 TextInputClient.getBackward(5,(text)=>{
   console.info("text = " + text);
});

getBackward

getBackward(length:number): Promise

获取光标后固定长度的文本。

系统能力: SystemCapability.Miscservices.InputMethodFramework

参数:

参数名类型必填说明
lengthnumber文本长度。

返回值:

类型说明
Promise返回文本。

示例:

 var text = TextInputClient.getBackward(5);
 console.info("text = " + text);

deleteForward

deleteForward(length:number, callback: AsyncCallback): void

删除光标前固定长度的文本。

系统能力: SystemCapability.Miscservices.InputMethodFramework

参数:

参数名类型必填说明
lengthnumber文本长度。
callbackAsyncCallback操作成功与否。

示例:

TextInputClient.deleteForward(5,(isSuccess)=>{
  console.info("isSuccess = " + isSuccess);
});

deleteForward

deleteForward(length:number): Promise

删除光标前固定长度的文本。

系统能力: SystemCapability.Miscservices.InputMethodFramework

参数:

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| length | number | 是 | 文本长度。 |

返回值:

 | 类型                            | 说明                                                         |
 | ------------------------------- | ------------------------------------------------------------ |
 | Promise&lt;boolean&gt; |  操作成功与否。                |

示例:

```js
 var isSuccess = TextInputClient.deleteForward(5);
 console.info("isSuccess = " + isSuccess);
```

deleteBackward

deleteBackward(length:number, callback: AsyncCallback): void

删除光标后固定长度的文本。

系统能力: SystemCapability.Miscservices.InputMethodFramework

参数:

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| length | number | 是 | 文本长度。 |
| callback | AsyncCallback&lt;boolean&gt; | 是 | 操作成功与否。 |

示例:

```js
 TextInputClient.deleteBackward(5, (isSuccess)=>{
 console.info("isSuccess = " + isSuccess);
});
```

deleteBackward

deleteBackward(length:number): Promise

删除光标后固定长度的文本。

系统能力: SystemCapability.Miscservices.InputMethodFramework

参数:

参数名类型必填说明
lengthnumber文本长度。

返回值:

类型说明
Promise操作成功与否。

示例:

 ```js
 var isSuccess = TextInputClient.deleteBackward(5);
 console.info("isSuccess = " + isSuccess);
 ```

sendKeyFunction

sendKeyFunction(action:number, callback: AsyncCallback): void

发送功能键。

系统能力: SystemCapability.Miscservices.InputMethodFramework

参数:

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| action | number | 是 | 编辑框属性。 |
| callback | AsyncCallback&lt;boolean&gt; | 是 | 操作成功与否。 |

示例:

```js
 TextInputClient.sendKeyFunction(inputMethod.ENTER_KEY_TYPE_NEXT,(isSuccess)=>{
  console.info("isSuccess = " + isSuccess);
});
```

sendKeyFunction

sendKeyFunction(action:number): Promise

发送功能键。

系统能力: SystemCapability.Miscservices.InputMethodFramework

参数:

参数名类型必填说明
actionnumber编辑框属性。

返回值:

类型说明
Promise操作成功与否。

示例:

var isSuccess = TextInputClient.sendKeyFunction(inputMethod.ENTER_KEY_TYPE_NEXT);
console.info("isSuccess = " + isSuccess);

insertText

insertText(text:string, callback: AsyncCallback): void

插入文本。

系统能力: SystemCapability.Miscservices.InputMethodFramework

参数:

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| text | string | 是 | 文本。 |
| callback | AsyncCallback&lt;boolean&gt; | 是 | 操作成功与否。 |

示例:

```js
TextInputClient.insertText("test", (isSuccess)=>{
  console.info("isSuccess = " + isSuccess);
});
```

insertText

insertText(text:string): Promise

插入文本。

系统能力: SystemCapability.Miscservices.InputMethodFramework

参数:

参数名类型必填说明
textstring文本。

返回值:

类型说明
Promise操作成功与否。

示例:

var isSuccess = TextInputClient.insertText("test");
console.info("isSuccess = " + isSuccess);

getEditorAttribute

getEditorAttribute(callback: AsyncCallback): void

获取编辑框属性值。

系统能力: SystemCapability.Miscservices.InputMethodFramework

参数:

参数名类型必填说明
callbackAsyncCallback<[EditorAttribute]>编辑框属性值。

示例:

  TextInputClient.getEditorAttribute((EditorAttribute)=>{
  });

getEditorAttribute

getEditorAttribute(): EditorAttribute

获取编辑框属性值。

系统能力: SystemCapability.Miscservices.InputMethodFramework

返回值:

类型说明
Promise<[EditorAttribute]>返回编辑框属性值。

示例:

var EditorAttribute = TextInputClient.getEditorAttribute();

)EditorAttribute

编辑框属性值。

系统能力:以下各项对应的系统能力均为SystemCapability.Miscservices.InputMethodFramework

名称参数类型可读可写说明
enterKeyTypenumber编辑框的功能属性。
inputPatternnumber编辑框的文本属性。

KeyEvent

按键属性值。

系统能力:以下各项对应的系统能力均为SystemCapability.Miscservices.InputMethodFramework

名称参数类型可读可写说明
keyCodenumber按键的键值。
keyActionnumber按键的状态。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1862234.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

TCP: 传输控制协议

TCP: 传输控制协议 TCP的服务TCP 的首部小结 本系列文章旨在巩固网络编程理论知识&#xff0c;后续将结合实际开展深入理解的文章。 TCP的服务 T C P和U D P都使用相同的网络层&#xff08;I P&#xff09;&#xff0c;T C P却向应用层提供与U D P完全不同的服务。 T C P提供一…

GPOPS-II教程(2): 可复用火箭再入大气层最优轨迹规划问题

问题描述 考虑一类可复用火箭再入大气层最优轨迹规划问题&#xff0c;其动力学方程为 { r ˙ v sin ⁡ γ , θ ˙ v cos ⁡ γ sin ⁡ ψ r cos ⁡ ϕ , ϕ ˙ v cos ⁡ γ cos ⁡ ψ r , v ˙ − F d m − F g sin ⁡ γ , γ ˙ F l cos ⁡ σ m v − ( F g v − v r …

malloc和new的本质区别

目录 一、结论 二、示例 1.实现类T 2.用malloc分配类T的内存空间 3.用new分配类T的内存空间 一、结论 malloc 和 new 都是用于在运行时动态分配内存的机制。但它们之间存在一些本质的区别&#xff0c;主要是在使用方面&#xff0c;现在我们直接说结论&#xff0c;然后在通过…

日光模拟器对显示器光干涉影响

太阳光模拟器应用领域 抬头显示器TFT日光照射仿真太阳光模拟器LED显示器阳光耐候老化测试仪器中的光照实验抬头显示器TFT日光照射仿真太阳光模拟器全光谱阳光太阳辐射环境模拟系统中的光LCD和OLED显示器强光试验太阳光模拟器日光模拟器的光谱匹配度测量方法新型LED太阳模拟器光…

Android音频系统

最近在做UAC的项目&#xff0c;大概就是接收内核UAC的事件&#xff0c;也就是声音相关事件。然后就是pcm_read和AudioTrackr->write之间互传。感觉略微有点奇怪&#xff0c;所以简单总结一下。 1 UAC的简要流程 open_netlink_socket 打开内核窗口&#xff0c;类似于ioctl。…

Verilog的逻辑系统及数据类型(一):四值逻辑系统

目录 1. Verilog采用的四值逻辑系统2.主要数据类型2.1 net&#xff08;线网&#xff09;2.2 寄存器类 &#xff08;register)2.3 Verilog中net和register声明语法2.3.1 net声明2.3.2 寄存器声明 2.4 选择正确的数据类型2.5 选择数据类型时常犯的错误2.5.1 信号类型确定方法总结…

使用 Spring Boot 3.x 与图形学技术,添加电子印章防伪特征

使用 Spring Boot 3.x 与图形学技术,添加电子印章防伪特征 在电子办公和无纸化办公日益普及的今天,电子印章的使用越来越广泛。然而,如何确保电子印章的安全性和防伪能力成为了一个亟待解决的问题。本文将通过 Spring Boot 3.x 和图形学技术,深入探讨如何为电子印章添加防…

速卖通自养号测评:安全高效的推广手段

在速卖通平台上&#xff0c;卖家们常常寻求各种方法来提升商品的曝光、转化率和店铺权重。其中&#xff0c;自养号测评作为一种低成本、高回报的推广方式&#xff0c;备受关注。然而&#xff0c;若操作不当&#xff0c;也可能带来风险。以下是如何安全有效地进行自养号测评的指…

label studio数据标注平台的自动化标注使用

&#xff08;作者&#xff1a;陈玓玏&#xff09; 开源项目&#xff0c;欢迎star哦&#xff0c;https://github.com/tencentmusic/cube-studio 做图文音项目过程中&#xff0c;我们通常会需要进行数据标注。label studio是一个比较好上手的标注平台&#xff0c;可以直接搜…

MAB规范(3):Chapter6 Glossary 术语表

第6章 - 术语表 此章不做过多的批注&#xff0c;都是些简单的术语解释。

【算法学习】判断点在多边形内外的算法以及确定内外两点连线与边界的交点

1.前言&#xff1a; 在GIS开发中&#xff0c;经常会遇到确定一个坐标点是否在一块区域的内部这一问题。 如果这个问题不是一个单纯的数学问题&#xff0c;例如&#xff1a;在判断DEM、二维图像像素点、3D点云点等含有自身特征信息的这些点是否在一个区域范围内部的时候&#x…

Java三层框架的解析

引言&#xff1a;欢迎各位点击收看本篇博客&#xff0c;在历经很多的艰辛&#xff0c;我也是成功由小白浅浅进入了入门行列&#xff0c;也是收货到很多的知识&#xff0c;每次看黑马的JavaWeb课程视频&#xff0c;才使一个小菜鸡见识到了Java前后端是如何进行交互访问的&#x…

20240626 每日AI必读资讯

&#x1f30d;警告&#xff01;OpenAI宣布全面封锁中国API接入&#xff01; - 7月9号开始封锁不支持的国家API - 如果在OpenAI不允许的国家使用其 API 将面临封杀 &#x1f517; 警告&#xff01;OpenAI 宣布全面封锁中国 API 接入-CSDN博客 &#x1f3b5;索尼、环球音乐、华…

29-Matplotlib数学表达式

Matplotlib数学表达式 Matplotlib 中的文本字符串都可以使用 Text Markup&#xff08;一种文本标记语言&#xff09;显现出来&#xff0c;具体的使用方法是将文本标记符放在一对美元符号$内&#xff0c;语法格式如下&#xff1a; #数学表达式 plt.title(r$\alpha > \beta$…

【c语言】二级指针

1&#xff0c;定义 本质还是从指针的角度去理解&#xff0c;只不过存的指针的值 2&#xff0c;使用方法

小程序的基本使用

【 0 】前言 【 0 】 这个就是js代码的存放地方 app.json // pages/banner/banner.js Page({/*** 页面的初始数据*/data: {},/*** 生命周期函数--监听页面加载*/onLoad(options) {},/*** 生命周期函数--监听页面初次渲染完成*/onReady() {},/*** 生命周期函数--监听页面显示…

互联网应用主流框架整合之Spring Boot运维体系

先准备个简单的系统&#xff0c;配置和代码如下 # 服务器配置 server:# 服务器端口port: 8001# Spring Boot 配置 spring:# MVC 配置mvc:# Servlet 配置servlet:# Servlet 的访问路径path: /sbd# 应用程序配置application:# 应用程序名称name: SpringBootDeployment# 配置数据…

云动态摘要 2024-06-25

给您带来云厂商的最新动态&#xff0c;最新产品资讯和最新优惠更新。 最新产品更新 Web应用防火墙 - 验证码支持微信小程序接入 阿里云 2024-06-25 支持客户从微信小程序场景下接入&#xff0c;提供人机识别的安全防护。 工业数字模型驱动引擎 - iDME控制台换新升级 华为云…

cropperjs 裁剪/框选图片

1.效果 2.使用组件 <!-- 父级 --><Cropper ref"cropperRef" :imgUrl"url" searchImg"searchImg"></Cropper>3.封装组件 <template><el-dialog :title"title" :visible.sync"dialogVisible" wi…

亚马逊云科技官方活动:一个月拿下助理架构师SAA+云从业者考试认证(送半价折扣券)

为了帮助大家考取AWS SAA和AWS云从业者认证&#xff0c;小李哥争取到了大量考试半价50%折扣券&#xff0c;使用折扣券考试最多可省75刀(545元人民币)。 领取折扣券需要加入云师兄必过班群&#xff0c;在群中免费领取。目前必过班群招募到了超过200名小伙伴&#xff0c;名额有限…