HarmonyOSBaseLibs

徐勤民 ee949f7233 发包配置 před 11 měsíci
src 6ef4ef6d27 init před 11 měsíci
.gitignore 6ef4ef6d27 init před 11 měsíci
BuildProfile.ets ee949f7233 发包配置 před 11 měsíci
CHANGELOG.md ee949f7233 发包配置 před 11 měsíci
Index.ets 6ef4ef6d27 init před 11 měsíci
LICENSE 6ef4ef6d27 init před 11 měsíci
README.md 6ef4ef6d27 init před 11 měsíci
UTILS.md 6ef4ef6d27 init před 11 měsíci
build-profile.json5 c1d26ff63c 发包配置 před 11 měsíci
consumer-rules.txt 6ef4ef6d27 init před 11 měsíci
hvigorfile.ts 6ef4ef6d27 init před 11 měsíci
obfuscation-rules.txt 6ef4ef6d27 init před 11 měsíci
oh-package.json5 c1d26ff63c 发包配置 před 11 měsíci

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)

}) ```

**** 常见问题