uni-app(1)

本笔记仅记录了一些本人常用到的,具体请查看https://uniapp.dcloud.io/


    1,uni-app的代码结构
        (1):pages => 存放页面
            static => 存放静态资源(图片,字体图标)
            pages.json => 存放路由跳转地址
        (2):pages.json的配置
            {
                "pages":[ 
                    <!--存放页面路径,每个页面都需在此配置-->
                    {
                        "path":"路径",
                        "style":{
                            "navigationBarBackgroundColor":"背景色",
                            "navigationBarTextStyle":"导航栏字体颜色(black/white)",
                            "navigationBarTitleText":"导航栏标题",
                            "navigationStyle":"导航栏样式(default/custom,custom取消默认导航栏)",
                            "disableScroll":"页面整体是否能够上下滚动(true/false)",
                            "backgroundColor":"窗口的背景色",
                            "backgroundTextStyle":"下拉刷新的样式(dark/light)",
                            "enablePullDownRefresh":"是否开启下拉刷新(true/false)",
                            "onReachBottomDistance":"Number(页面上拉触底事件触发时距页面底部距离)",
                            "backgroundColorTop":"顶部窗口的颜色(仅限于ios)",
                            "backgroundColorBottom":"底部窗口的背景色(仅限于ios)",
                            "app-plus":{
                                <!--编译到APP平台的特定样式-->
                            },
                            "h5":{
                                <!--编译到H5平台的特定样式-->
                            },
                            "usingComponents":{
                                <!--引用小程序组件-->
                                [link](https://uniapp.dcloud.io/frame?id=%E5%B0%8F%E7%A8%8B%E5%BA%8F%E7%BB%84%E4%BB%B6%E6%94%AF%E6%8C%81)

                            }
                        }
                    },{
                        
                    }
                ],
                <!--底部导航栏-->
                "tabBar":{
                    "color":"tab上的文字颜色",
                    "selectedColor":"tab 上的文字选中时的颜色",
                    "backgroundColor":"tab 的背景色",
                    "borderStyle":"tab上边框的颜色",
                    "list":[{ <!-- 最少2个,最多5个 -->
                        "pagePath":"页面路径",
                        "text":"tab文字",
                        "iconPath":"图标",
                        "selectedIconPath":"选中图标"
                    },{
                        
                    }]
                },
                <!-- 仅开发模式下有效 -->
                "condition":{
                    "current":0,
                    "list":[{
                        "name":"",
                        "path":"路径",
                        "query":"参数,onload获取到"
                    }]
                }
            }
    2,uni-app中的生命周期
        (1):应用的生命周期(仅在APP.vue中监听才起效)
            onLaunch(){    
                <!--当uni-app初始化完成时触发(全局只触发一次) -->
            }
            onShow(){
                <!--当APP启动或者从后台显示到前台-->
            }
            onHide(){
                <!--当APP从前台进入后台-->
            }
            onUniNViewMessage(){
                <!--对nvue页面发送数据进行监听-->
            }
        
        (2):页面的生命周期
            onLoad(option){
                <!--option为上个页面传递的参数-->
            }
            onShow(){
                <!--监听页面的显示,包括后退也会执行该函数-->
            }
            onReady(){
                <!--页面初次渲染-->
            }
            onHide(){
                <!--监听页面隐藏-->
            }
            onUnload(){
                <!--监听页面卸载-->
            }
            onPullDownRefresh(){
                <!--监听用户下拉(下拉刷新)-->
            }
            onReachBottom(){
                <!--页面上拉触底事件的处理函数-->
            }
            onTabItemTap(option){
                <!--点击tab时触发-->
            }
            onShareAppMessage(){
                <!--用户点击右上角分享(小程序)-->
            }
            onPageScroll(option){
                <!--监听页面滚动-->
            }
            onNavigationBarButtonTap(option){
                <!--监听原生标题栏按钮点击事件,参数为Object-->
            }
            onBackPress(options){
                <!--
                    Android 实体返回键 (form = backbutton)
                    顶部导航栏左边的返回按钮 (form = backbutton)
                    返回 API,即 uni.navigateBack() (form = navigateBack)
                -->
                if (options.from === 'navigateBack') {  
                    return false;  
                }  
                return true; 
            }
            onNavigationBarSearchInputChanged(){
                <!--监听原生标题栏搜索输入框输入内容变化事件-->
            }
            onNavigationBarSearchInputConfirmed(){
                <!--监听原生标题栏搜索输入框搜索事件,用户点击软键盘上的“搜索”按钮时触发-->
            }
            onNavigationBarSearchInputClicked(){
                <!--监听原生标题栏搜索输入框点击事件-->
            }
    3,uni-app中的路由
        (1):uni.navigateTo({
                url,    <!--跳转地址,可带参数www.baidu.com?id=1&type=2 -->
                animationType,<!--窗口显示的动画效果 -->
                animationDuration,<!--窗口动画持续时间,单位为 ms -->
                success, <!--接口调用成功的回调函数 -->
                fail, <!--接口调用失败的回调函数 -->
                complete <!--接口调用结束的回调函数(调用成功、失败都会执行) -->
            })
            ---保留当前页面,跳转到应用内的某个页面(页面不断的堆栈,当栈过多时,按返回键会出现白屏现象。并且此页面不能为tabBar页面)---
        
        (2):uni.redirectTo({
                url,  <!--跳转地址,可带参数www.baidu.com?id=1&type=2 -->
                success,<!--接口调用成功的回调函数 -->
                fail,<!--接口调用失败的回调函数 -->
                complete<!--接口调用结束的回调函数(调用成功、失败都会执行) -->
            })
            ---关闭当前页面,跳转到应用内的某个页面。(注意打开页面不能为tabBar页面)---
        
        (3):uni.reLaunch({
                url,<!--跳转地址,可带参数www.baidu.com?id=1&type=2 -->
                success,<!--接口调用成功的回调函数 -->
                fail,<!--接口调用失败的回调函数 -->
                complete<!--接口调用结束的回调函数(调用成功、失败都会执行) -->
            })
            ---关闭所有页面,打开到应用内的某个页面。(可以打开任意页面)---
            
        (4):uni.switchTab({
                url, <!-- 注意路径后面不能带参数 -->
                success, <!--接口调用成功的回调函数 -->
                fail,<!--接口调用失败的回调函数  -->
                complete,<!--接口调用结束的回调函数(调用成功、失败都会执行) -->
            })
            --- 跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面。---
        (5):uni.navigateBack({
                delta, <!--关闭的层数 -->
                animationType, <!--窗口关闭的动画效果 -->
                animationDuration,<!--窗口关闭动画的持续时间,单位为 ms -->
            })
            ---关闭当前页面,返回上一页面或多级页面。可通过 getCurrentPages() 获取当前的页面栈,决定需要返回几层。---
            let pages = getCurrentPages();
            console.log(pages);
            
    4,uni-app中的请求
        uni.request({
            url,  <!--请求地址 -->
            data, <!--请求参数 -->
            header, <!--设置请求的 header, -->
            method, <!--请求方式 -->
            dataType, <!-- 如果设为 json,会尝试对返回的数据做一次 JSON.parse-->
            responseType, <!--设置响应的数据类型。合法值:text、arraybuffer -->
            success, <!--成功返回执行此函数 -->
            fail, <!-- 错误返回此函数-->
            complete <!--不管成功还是失败都会执行此函数 -->
        });
        --- method ---
            method 有效值必须大写
            'POST'
                <!-- 
                    1,header['content-type']为application/json 的数据,会进行 JSON 序列化
                    2,header['content-type']为application/x-www-form-urlencoded的数据,会将数据转换为 query string。
                -->
            'GET'
                <!--
                    会将数据转换为 query string。例如 { name: 'name', age: 18 } 转换后的结果是 name=name&age=18。
                -->
            'PUT'
            'DELETE'
            'CONNECT'
            'HEAD'
            'OPTIONS'
            'TRACE'
    5,uni-app中的数据存储
        (1):uni.setStorage({
                key:"String",
                data:'Any',
                success:function,
                faul:function,
                complete:function
            })
        ---将数据存储在本地缓存中指定的 key 中,会覆盖掉原来该 key 对应的内容,这是一个异步接口。 ---
        (2):uni.setStorageSync({
                key:'String',
                data:'Any'
            })
        ---将 data 存储在本地缓存中指定的 key 中,会覆盖掉原来该 key 对应的内容,这是一个同步接口。 ---
        (3):uni.getStorage({
                key:'',
                success:function,
                fail:function,
                complete:function
            })
        ---从本地缓存中异步获取指定 key 对应的内容。---
        (4):uni.getStorageSync({
                key:'String'
            })
        ---从本地缓存中同步获取指定 key 对应的内容。---
        (5):uni.removeStorage({
                key:'String',
                success:function,
                fail:function,
                complete:function
            })
        ---从本地缓存中异步移除指定 key。---
        (6):uni.clearStorage()
        ---清理本地数据缓存。---
    5,uni-app中的上传和下载
        (1):上传
            uni.uploadFile({
                url, <!--上传url -->
                files,<!--需要上传的文件列表。使用 files 时,filePath 和 name 不生效 -->
                fileType, <!--文件类型,image/video/audio -->
                filePath,<!--要上传文件资源的路径 -->
                name, <!--文件对应的 key , 开发者在服务器端通过这个 key 可以获取到文件二进制内容 -->
                header, <!--HTTP 请求 Header, header 中不能设置 Referer。 -->
                formData,<!-- HTTP 请求中其他额外的 form data-->
                success,<!-- 接口调用成功的回调函数-->
                fail,<!--接口调用失败的回调函数 -->
                complete, <!--接口调用结束的回调函数(调用成功、失败都会执行)-->
            })
        ---5+App支持多文件上传,微信小程序只支持单文件上传,传多个文件需要反复调用本API。所以跨端的写法就是循环调用本API。 ---
        (2):下载
            uni.downloadFile({
                url,<!--下载资源的 url -->
                header,<!--HTTP 请求 Header, header 中不能设置 Referer。-->
                success,<!--下载成功后以 tempFilePath 的形式传给页面,res = {tempFilePath: '文件的临时路径'}-->
                fail,<!--接口调用失败的回调函数-->
                complete,<!--接口调用结束的回调函数(调用成功、失败都会执行)-->
            })
        ---注:文件的临时路径,在应用本次启动期间可以正常使用,如需持久保存,需在主动调用 uni.saveFile,才能在应用下次启动时访问得到---
    6,uni-app中图片
        (1):uni.chooseImage({
                count:number, <!--最多可以选择的图片张数,默认9-->
                sizeType,<!--original 原图,compressed 压缩图,默认二者都有-->
                sourceType,<!--album 从相册选图,camera 使用相机,默认二者都有-->
                success,<!--成功则返回图片的本地文件路径列表 tempFilePaths-->
                fail,<!--接口调用失败的回调函数-->
                complete,<!--接口调用结束的回调函数(调用成功、失败都会执行)-->
            })
        ---从本地相册选择图片或使用相机拍照。另外选择和上传非图像、视频文件参考:https://ask.dcloud.net.cn/article/35547。---
        (2):uni.previewImage({})
        ---预览图片,详见https://uniapp.dcloud.io/api/media/image?id=unipreviewimageobject---
        (3):uni.getImageInfo({
                src, <!--图片的路径,可以是相对路径,临时文件路径,存储文件路径,网络图片路径-->
                success, <!--接口调用成功的回调函数-->
                fail,<!--接口调用失败的回调函数-->
                complete,<!--接口调用结束的回调函数(调用成功、失败都会执行)-->
            })
        ---获取图片信息---
        (4):uni.saveImageToPhotosAlbum({
                filePath,<!--图片文件路径,可以是临时文件路径也可以是永久文件路径,不支持网络图片路径-->
                success,<!--接口调用成功的回调函数-->
                fail,<!--接口调用失败的回调函数-->
                complete,<!--接口调用结束的回调函数(调用成功、失败都会执行)-->
            })
        ---保存图片到系统相册(仅支持APP和微信小程序)---
        (5):uni.compressImage({
                src, <!--图片路径,图片的路径,可以是相对路径、临时文件路径、存储文件路径-->
                quality,<!--压缩质量,范围0~100,数值越小,质量越低,压缩率越高(仅对jpg有效-->
                success,<!--接口调用成功的回调函数-->
                fail,<!--接口调用失败的回调函数-->
            })
        (6):wx.chooseMessageFile(OBJECT)
        ---从客户端会话选择文件。---
    7,uni-app中的文件
        (1):uni.saveFile({
                tempFilePath, <!--需要保存的文件的临时路径-->
                success,<!--返回文件的保存路径,res = {savedFilePath: '文件的保存路径'}-->
                fail,<!--接口调用失败的回调函数-->
                complete<!--接口调用结束的回调函数(调用成功、失败都会执行)-->
            })
        ---保存文件到本地。(不支持H5)---
        (2):uni.getSavedFileList({
                success,<!--接口调用成功的回调函数-->
                fail,<!--接口调用失败的回调函数-->
                complete,<!--接口调用结束的回调函数(调用成功、失败都会执行)-->
            })
        ---获取本地已保存的文件列表。 ---
        (3):uni.getSavedFileInfo({
                filePath, <!--文件路径-->
                success,<!--接口调用成功的回调函数,返回结果见 success 返回参数说明-->
                fail,<!--接口调用失败的回调函数-->
                complete,<!--接口调用结束的回调函数(调用成功、失败都会执行)-->
            })
        ---获取本地文件的文件信息。此接口只能用于获取已保存到本地的文件。---
        (4):uni.removeSavedFile({
                filePath, <!--文件路径-->
                success,<!--接口调用成功的回调函数,返回结果见 success 返回参数说明-->
                fail,<!--接口调用失败的回调函数-->
                complete,<!--接口调用结束的回调函数(调用成功、失败都会执行)-->
            })
        ---删除本地存储的文件。---
        (5):uni.getFileInfo({
                filePath,<!--文件路径-->
                digestAlgorithm,<!--计算文件摘要的算法,可取值 md5、sha1。-->
                success,<!--接口调用成功的回调函数-->
                fail,<!--接口调用失败的回调函数-->
                complete,<!--接口调用结束的回调函数(调用成功、失败都会执行)-->
            })
        ---获取文件信息---
        (6):uni.openDocument({
                filePath,<!--文件路径-->
                fileType,<!--文件类型,指定文件类型打开文件,有效值 doc, xls, ppt, pdf, docx, xlsx, pptx-->
                success,<!--接口调用成功的回调函数-->
                fail,<!--接口调用失败的回调函数-->
                complete,<!--接口调用结束的回调函数(调用成功、失败都会执行)-->
            })
        ---新开页面打开文档,支持格式:doc, xls, ppt, pdf, docx, xlsx, pptx。(不支持H5)---
        (7):uni.getFileSystemManager()
        ---获取全局唯一的文件管理器(仅支持微信小程序)---

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值