HarmonyOSBaseLibs

徐勤民 ee949f7233 发包配置 11 maanden geleden
src 6ef4ef6d27 init 11 maanden geleden
.gitignore 6ef4ef6d27 init 11 maanden geleden
BuildProfile.ets ee949f7233 发包配置 11 maanden geleden
CHANGELOG.md ee949f7233 发包配置 11 maanden geleden
Index.ets 6ef4ef6d27 init 11 maanden geleden
LICENSE 6ef4ef6d27 init 11 maanden geleden
README.md 6ef4ef6d27 init 11 maanden geleden
UTILS.md 6ef4ef6d27 init 11 maanden geleden
build-profile.json5 c1d26ff63c 发包配置 11 maanden geleden
consumer-rules.txt 6ef4ef6d27 init 11 maanden geleden
hvigorfile.ts 6ef4ef6d27 init 11 maanden geleden
obfuscation-rules.txt 6ef4ef6d27 init 11 maanden geleden
oh-package.json5 c1d26ff63c 发包配置 11 maanden geleden

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)

}) ```

**** 常见问题