鸿蒙开发基础库
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
徐勤民 defe1e605e 混淆相关 3 週之前
src 扫码登录 3 週之前
.gitignore init 4 月之前
BuildProfile.ets 混淆相关 3 週之前
CHANGELOG.md 打包提审 4 月之前
Index.ets 手写签名完成 3 週之前
LICENSE 接口请求 4 月之前
README.md 手写签名 3 週之前
UTILS.md init 4 月之前
build-profile.json5 发包配置 4 月之前
consumer-rules.txt init 4 月之前
hvigorfile.ts init 4 月之前
obfuscation-rules.txt init 4 月之前
oh-package.json5 Merge remote-tracking branch 'origin/master' 4 月之前

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.AlgorithmHelper

计算相关

1.5.1.验证手机号

import { AlgorithmHelper } from '@szyx/sdk_base';
AlgorithmHelper.calculateDistance(x1, y1, x2, y2)

1.6.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请求


      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


HttpHelper.get()
  .post<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)
  })

**** 常见问题