更新记录

1.1.0(2024-09-13)

  1. 修复iOs shareWithSystem异常的问题

1.0.9(2024-09-13)

  1. 修复shareWithSystem异常的问题

1.0.8(2024-09-12)

  1. 修复Web异常的问题
查看更多

平台兼容性

Vue2 Vue3
App 快应用 微信小程序 支付宝小程序 百度小程序 字节小程序 QQ小程序
HBuilderX 4.23,Android:4.4,iOS:9,HarmonyOS:不确定 × × × × × ×
钉钉小程序 快手小程序 飞书小程序 京东小程序
× × × ×
H5-Safari Android Browser 微信浏览器(Android) QQ浏览器(Android) Chrome IE Edge Firefox PC-Safari
× × × × × × × × ×

logo

UxPlus 1.1.0

基于UTS开发的原生插件库

已实现功能 ⬇️

  • 全局置灰 (Android、iOS、Web)
  • 系统分享 (Android、iOS)
  • 设置申请权限的提示说明 (Android)
  • 权限申请 (Android、iOS)
  • 打开app权限设置 (Android、iOS)
  • 隐藏键盘 (Android、iOS、Web)
  • 拨打电话 (Android、iOS、Web)
  • 打开链接 (Android、iOS、Web)
  • 震动 (Android、iOS)
  • 创建进度条通知栏 (Android)

案例


import * as plus from "@/uni_modules/ux-plus"

function setGray(gray: number) {
    plus.setGray(gray)
}

function openURL() {
    let brand = uni.getSystemInfoSync().deviceBrand
    let pkgName = 'com.tencent.mm'
    let market = ''

    // #ifndef APP-IOS
    if (brand == 'huawei') {
        market = `market://details?id=${pkgName}`
    } else if (brand == 'xiaomi') {
        market = `mimarket://details?id=${pkgName}`
    } else if (brand == 'oppo') {
        market = `oppomarket://details?packagename=${pkgName}`
    } else if (brand == 'vivo') {
        market = `vivomarket://details?id=${pkgName}`
    } else if (brand == 'samsung') {
        market = `samsungapps://ProductDetail/${pkgName}`
    }
    // #endif

    // #ifdef APP-IOS
    market = `itms-apps://itunes.apple.com/app?id=${pkgName}`
    // #endif

    plus.openURL({
        url: market
    } as plus.UxOpenURLOptions)
}

function makePhoneCall() {
    plus.makePhoneCall({
        phoneNumber: ''
    } as plus.UxMakePhoneCallOptions)
}

function vibrate1() {
    plus.vibrate({
        type: 'light'
    } as plus.UxVibrateOptions)
}

function vibrate2() {
    plus.vibrate({
        type: 'medium'
    } as plus.UxVibrateOptions)
}

function vibrate3() {
    plus.vibrate({
        type: 'heavy'
    } as plus.UxVibrateOptions)
}

function shareText() {
    plus.shareWithSystem({
        type: 'text',
        title: 'UxFrame低代码高性能UI框架',
        summary: 'UxFrame是基于UNI-APP-X开发的低代码高性能原生UI框架',
        href: 'https://www.uxframe.cn',
        imageUrl: '/static/logo.png'
    } as plus.UxShareWithSystemOptions)
}

function shareImage() {
    plus.shareWithSystem({
        type: 'image',
        imageUrl: '/static/logo.png'
    } as plus.UxShareWithSystemOptions)
}

function shareFile() {
    plus.shareWithSystem({
        type: 'file',
        href: '/static/demo.pdf'
    } as plus.UxShareWithSystemOptions)
}

function setRequestPermissionTips() {
    let permissons = [{
        permission: 'location', // 可能有多个权限包装在一起,统一这个说明
        // permission: 'android.permission.CAMERA', // 单个权限说明
        content: "<h4 style=\"font-size:40px;\">获取位置权限说明</h4><font color=#cccccc>我们需要您的位置信息来提供更好的服务</font>"
    },{
        permission: 'push',
        content: "<h4 style=\"font-size:40px;\">系统通知权限说明</h4><font color=#cccccc>我们需要推送通知来发送重要更新和提醒</font>"
    },{
        permission: 'camera',
        content: "<h4 style=\"font-size:40px;\">拍照/拍摄/存储空间权限说明</h4><font color=#cccccc>我们需要访问您的摄像机来拍摄照片/视频</font>"
    },{
        permission: 'photo',
        content: "<h4 style=\"font-size:40px;\">获取照片/视频/存储空间权限说明</h4><font color=#cccccc>我们需要访问您的相册来保存或选择照片</font>"
    },{
        permission: 'microphone',
        content: "<h4 style=\"font-size:40px;\">获取麦克风权限说明</h4><font color=#cccccc>我们需要访问您的麦克风来录音</font>"
    },{
        permission: 'bluetooth',
        content: "<h4 style=\"font-size:40px;\">获取蓝牙权限说明</h4><font color=#cccccc>我们需要您的同意来使用蓝牙来提供更好的服务</font>"
    },{
        permission: 'calendar',
        content: "<h4 style=\"font-size:40px;\">获取日历权限说明</h4><font color=#cccccc>我们需要访问您的日历来提供更好的服务</font>"
    },{
        permission: 'contact',
        content: "<h4 style=\"font-size:40px;\">获取通讯录权限说明</h4><font color=#cccccc>我们需要您的同意来访问联系人来提供更好的服务</font>"
    },{
        permission: 'sms',
        content: "<h4 style=\"font-size:40px;\">获取短信权限说明</h4><font color=#cccccc>我们需要访问短信来提供更好的服务</font>"
    },{
        permission: 'phone',
        content: "<h4 style=\"font-size:40px;\">拨打/管理电话权限说明</h4><font color=#cccccc>我们需要访问电话来提供更好的服务</font>"
    },{
        permission: 'phone_state',
        content: "<h4 style=\"font-size:40px;\">获取设备信息权限说明</h4><font color=#cccccc>我们需要获取设备信息来提供更好的服务</font>"
    }] as plus.UxRequestPermissionTipsOptions[]

    plus.setRequestPermissionTips(permissons)
}

function requestPermissions() {
    plus.requestPermissions({
        name: 'camera', // 内部封装权限包,可能包含多个权限
        // permissions: permissons.map((e): string => e.permission), // 更细致的权限列表
        complete: (allRight: boolean, permissions : string[], doNotAskAgain: boolean) => {
            console.log(allRight, permissions);
            uni.showToast({
                title: allRight ? '已授权' : '已拒绝'
            })
        }
    } as plus.UxRequestPermissionsOptions)
}

function openAppAuthorizeSetting() {
    plus.openAppAuthorizeSetting('settings')
}

更多功能持续集成中...

文档教程 ⬇️

https://www.uxframe.cn

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件不采集任何数据

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问