HarmonyOSBaseLibs

徐勤民 6ef4ef6d27 init 11 miesięcy temu
src 6ef4ef6d27 init 11 miesięcy temu
.gitignore 6ef4ef6d27 init 11 miesięcy temu
BuildProfile.ets 6ef4ef6d27 init 11 miesięcy temu
CHANGELOG.md 6ef4ef6d27 init 11 miesięcy temu
Index.ets 6ef4ef6d27 init 11 miesięcy temu
LICENSE 6ef4ef6d27 init 11 miesięcy temu
README.md 6ef4ef6d27 init 11 miesięcy temu
UTILS.md 6ef4ef6d27 init 11 miesięcy temu
build-profile.json5 6ef4ef6d27 init 11 miesięcy temu
consumer-rules.txt 6ef4ef6d27 init 11 miesięcy temu
hvigorfile.ts 6ef4ef6d27 init 11 miesięcy temu
obfuscation-rules.txt 6ef4ef6d27 init 11 miesięcy temu
oh-package.json5 6ef4ef6d27 init 11 miesięcy temu

README.md

基础开发工具包

ohpm install @szyx/sdk_base

1.utils

1.1.AppStorageHelper

缓存工具类,运行时存储,应用停止运行后清空

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

永久存储类,应用停止后也不会清空 需要验证,更新应用会不会被清理 可存储类型 number | string | boolean | Array<number> | Array<string> | Array<boolean> | Uint8Array

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

常用方法工具栏 基础方法

1.3.1.弹出Toast提示

import { ToolsHelper } from '@szyx/sdk_base';
        
ToolsHelper.showMessage('Hello Word!')

1.4.ValidatorHelper

常用正则

1.4.1.验证手机号

import { ValidatorHelper } from '@szyx/sdk_base';
  ValidatorHelper.isPhone('13800000000')

1.5.XWebHelper

打开webview页面

import { XWebHelper } from '@szyx/sdk_base';
// 必须先引入,否则无法跳转
const XWebview = import('../pages/XWebview');
        
XWebHelper.openWeb({
  url: 'https://www.baidu.com',
  title: '百度一下',
})

2.Dialog

2.1.弹出list选中弹窗

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.网络请求

使用室建议二次封装

参数定义

> /**
> * 
> * @param url url地址
> * @param data 请求参数
> * @param headers 请求头
> * @param apiNo 请求标识,取消请求或者去重使用|考虑做自动重试使用
> * @returns
>   */
> ```

### 3.1.get请求

typescript

  HttpHelper.get()
    .get<HttpResult<T>>(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<T>) => {
      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)

}) ```

**** 常见问题