# 基础开发工具包 ```shell ohpm install @szyx/sdk_base ``` ## 1.[utils](./src/main/ets/utils) ### 1.1.[AppStorageHelper](./src/main/ets/utils/AppStorageHelper.ets) > 缓存工具类,运行时存储,应用停止运行后清空 ```typescript import { AppStorageHelper } from '@szyx/sdk_base/Index' // 存储string数据 AppStorageHelper.save(StorageKeys.CLIENT_ID, d) // 获取存储的strign数据 let d = AppStorageHelper.get(StorageKeys.CLIENT_ID) ``` ### 1.2.[PreferencesHelper](./src/main/ets/utils/PreferencesHelper.ets) > 永久存储类,应用停止后也不会清空 > 需要验证,更新应用会不会被清理 > 可存储类型 `number | string | boolean | Array | Array | Array | Uint8Array` ```typescript import { PreferencesHelper } from '@szyx/sdk_base/Index' // 存储数据 PreferencesHelper.put(StorageKeys.CLIENT_ID, value) // 获取存储的数据 PreferencesHelper.get(StorageKeys.CLIENT_ID).then(res => { console.log('>>>>>', res) }) ``` ### 1.3.[ToolsHelper](./src/main/ets/utils/ToolsHelper.ets) > 常用方法工具栏 > 基础方法 #### 1.3.1.弹出Toast提示 ```typescript import { ToolsHelper } from '@szyx/sdk_base'; ToolsHelper.showMessage('Hello Word!') ``` ### 1.4.[ValidatorHelper](./src/main/ets/utils/ValidatorHelper.ets) > 常用正则 #### 1.4.1.验证手机号 ```typescript import { ValidatorHelper } from '@szyx/sdk_base'; ValidatorHelper.isPhone('13800000000') ``` ### 1.5.[XWebHelper](./src/main/ets/utils/XWebHelper.ets) > 打开webview页面 ```typescript import { XWebHelper } from '@szyx/sdk_base'; // 必须先引入,否则无法跳转 const XWebview = import('../pages/XWebview'); XWebHelper.openWeb({ url: 'https://www.baidu.com', title: '百度一下', }) ``` ## 2.[Dialog](./src/main/ets/dialog) ### 2.1.弹出list选中弹窗 ```typescript import { XDialogController } from '../dialog/XDialogController'; import { XDialogList } from '../dialog/XDialogList'; @Component struct MyView { // 控制器,控制开关 dialogController: XDialogController = {} as XDialogController build() { Column() { Button({ buttonStyle: ButtonStyleMode.TEXTUAL }) { Image($r('sys.media.ohos_ic_public_more')) .width(26).height(26) }.width(65) .onClick(() => { if (this.dialogController != null) { this.dialogController.open() } }) XDialogList({ // 控制器 controller: this.dialogController, // 标题(可选) title: '选择您的操作', // 选择内容列表 values: ['刷新', '浏览器打开', '分享', '复制地址'], // 用户选择事件 onSelected: (index: number, value: string) => { ToolsHelper.showMessage(`用户选择了第${index}个,内容为:${value}`) }, // 用户取消事件 onCancel: () => { ToolsHelper.showMessage('用户取消操作') }, // 是否可取消(点击空白处,或者物理返回键) autoCancel: true }) }.width('100%').height('100%') } } ``` ## 3.[网络请求](./src/main/ets/http/HttpHelper.ts) > 使用室建议二次封装 > > 参数定义 > ```typescript > /** > * > * @param url url地址 > * @param data 请求参数 > * @param headers 请求头 > * @param apiNo 请求标识,取消请求或者去重使用|考虑做自动重试使用 > * @returns > */ > ``` ### 3.1.get请求 ```typescript HttpHelper.get() .get>(url.url.startsWith('http') ? url.url : GlobalValue.getInstance().envUrl + url.url, data ? JSON.stringify(data) : undefined, { userId: GlobalValue.getInstance().userId, clientId: GlobalValue.getInstance().getClientId(), version: ConstantValue.VERSION, deviceType: '01', timeStamp: timeStamp + '', sign: sign, phoneModel: 'sign', phoneVersion: 'sign', phoneBrand: 'HarmonyOS' }, url.apiNo) .then((res: HttpResult) => { if (res.status === '0') { resolve(res.data as T) } else { reject(new Error(res.message)) } }) .catch((error: Error) => { reject(error) }) ``` ### 3.2.postJson ```typescript HttpHelper.get() .post>(url.url.startsWith('http') ? url.url : GlobalValue.getInstance().envUrl + url.url, data ? JSON.stringify(data) : undefined, { userId: GlobalValue.getInstance().userId, clientId: GlobalValue.getInstance().getClientId(), version: ConstantValue.VERSION, deviceType: '01', timeStamp: timeStamp + '', sign: sign, phoneModel: 'sign', phoneVersion: 'sign', phoneBrand: 'HarmonyOS' }, url.apiNo) .then((res: HttpResult) => { if (res.status === '0') { resolve(res.data as T) } else { reject(new Error(res.message)) } }) .catch((error: Error) => { reject(error) }) ``` # **** 常见问题