更新记录

1.0.5(2026-07-14) 下载此版本

1、优化代码适配三端 2、优化其他辅助工具

1.0.4(2025-11-25) 下载此版本

修改AIP示例

1.0.3(2025-11-03) 下载此版本

更新描述

查看更多

平台兼容性

uni-app(4.25)

Vue2 Vue3 Chrome Safari app-vue app-nvue Android iOS 鸿蒙
微信小程序 支付宝小程序 抖音小程序 百度小程序 快手小程序 京东小程序 鸿蒙元服务 QQ小程序 飞书小程序 小红书小程序 快应用-华为 快应用-联盟
-

uni-app x(4.25)

Chrome Safari Android iOS 鸿蒙 微信小程序

一、目录介绍

  • api请求方法已经在 Https/Api.js 和 Https/Http.js文件中完善,打开文件自行修改为自己的真实请求地址
  • EnvConfig/index.js 环境配置工具类(支持 微信小程序 / H5 / App 三端)
  • 其他文件是辅助工具的封装与使用,可自行参考

二、main.js


/ #ifdef VUE3
import {createSSRApp} from 'vue'

/*================== 挂载全局属性 ==================*/

// 获取设备系统信息,包括窗口大小、状态栏、底部安全区等
import SystemUtils from './uni_modules/duck-http-request/js_sdk/System/index.js'

// 提示插件类
import ToastPlugin from './uni_modules/duck-http-request/js_sdk/Public/ToastPlugin.js'

// 跳转
import Navigation from '@/uni_modules/duck-http-request/js_sdk/Navigation/index.js'

// store[vuex]
import store from '@/uni_modules/duck-http-request/js_sdk/Store/index.js'

// Api
import Api from './uni_modules/duck-http-request/js_sdk/Https/Api.js'

/*================== End 挂载全局属性 ==================*/

export function createApp() {
    const app = createSSRApp(App)

    // Api
    app.config.globalProperties.$api = Api

    // 获取设备系统信息
    app.config.globalProperties.$system = SystemUtils

    // ToastPlugin
    app.use(ToastPlugin)

    // Navigation
    app.use(Navigation)

    // Api
    app.config.globalProperties.$api = Api

    // store
    app.use(store)

    return {
        app
    }
}
// #endif

三、index.vue文件中引用示例


<template>
    <view class="container">
        <button style="margin-top: 50rpx; height: 80rpx;" @getphonenumber="getPhoneNumber"
            open-type="getPhoneNumber" :loading="loading" >
            {{ example }}
        </button>
    </view>
</template>

<script setup lang="ts">
    import { ref, reactive, onMounted,getCurrentInstance } from 'vue';

    // 示例变量
    const example = ref('微信登录')

    // 获取 store 实例
    import { useStore } from 'vuex'
    const store = useStore()

    /* 获取当前实例 */
    const { proxy } = getCurrentInstance()
    // 缓存 $toast 方法
    const $toast = proxy?.$toast
    const $api = proxy?.$api

    const loading= ref(false)

    /*==================  事件 ==================*/

    // 微信登录(获取手机)
    const getPhoneNumber=(e)=>{
        if(e.detail.code === undefined) return
        loading.value = true

        uni.login({
            provider:'weixin',
            onlyAuthorize: true,
            success: res =>{
                const { code } = res
                let obj = {
                    code: code,
                    phoneCode: e.detail.code
                }
                LoginInit(obj)
            }
        })

    }

    // 微信登录 API
    const LoginInit = async (obj)=>{
        try{
            const res = await $api.login(obj)
            const { data } = res
            if(res.code === 0) return $toast.default(res.msg)
            // VUEX
            store.dispatch('useAccount/login',{ token: data.token })
            // 跳转首页
            proxy.$backOrHome()

        }finally {
            loading.value = false
        }
    }

    /*================== End 事件 ==================*/

</script>

四、App.vue 引用Vuex


<script>
    export default {
        onLaunch: function() {
            // 应用启动时最先执行,确保所有页面都能拿到 token
            this.$store.dispatch('useAccount/initUserInfo');
        },
        onShow: function() {
            console.log('App Show')
        },
        onHide: function() {
            console.log('App Hide')
        }
    }
</script>

<style>
    /*每个页面公共css */
</style>

隐私、权限声明

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

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

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

许可协议

MIT协议