HBuilderX

HBuilderX

极客开发工具
uni-app

uni-app

开发一次,多端覆盖
uniCloud

uniCloud

云开发平台
HTML5+

HTML5+

增强HTML5的功能体验
MUI

MUI

上万Star的前端框架

[plugin:uni:mp-inject] Unexpected token 乱报位置的问题到底能不能改,烦死人啦!!!!!!!!!!!!!!!!!

[plugin:uni:mp-inject] Unexpected token 乱报位置的问题到底能不能改,烦死人啦!!!!!!!!!!!!!!!!!

[plugin:uni:mp-inject] Unexpected token 乱报位置的问题到底能不能改,烦死人啦!!!!!!!!!!!!!!!!!

uni-app中使用js sdk存数据和上传图片到leancloud上

Leancloud

弄了一天,终于弄出来了,哈哈。。真好。。。leancloud免费1g存数据的空间和免费10g存文件的空间足够用了。。。这样以后做app可以不用自己写后台接口部署到自己的服务器上了。。嘿嘿。。真好。。
存json数据还是在看b站的视频的帮助下才弄好的,真是万能的b站。。。
步骤:
1,leancloud文档中心下载av-core-min.js和leancloud-adapters-weapp.js

https://docs.leancloud.cn/sdk/storage/guide/setup-js/#%E5%BE%AE%E4%BF%A1--qq-%E5%B0%8F%E7%A8%8B%E5%BA%8F

hbuilderx中建立uni-app项目,默认是vue2的,直接建就是了,然后建js目录,把上面下载的二个文件粘贴进去

2,main.js中添加如下代码:

import AV from 'js/av-core-min.js'  
import Adapters from 'js/leancloud-adapters-weapp.js'  

AV.setAdapters(Adapters);  
AV.init({  
    appId:"你在leancloud里的项目的appid",  
    appKey:"你在leancloud里的项目的appkey",  
    serverURL:"你在leancloud里的项目的设置里的api访问域名,如:https://aaa.xxx.net"  
});  
Vue.prototype.$AV = AV;

3,index.vue界面代码如下,存json字符串有用rest api和js sdk两种方式存的,上传图片的话只能是用js sdk来上传

<template>  
    <view class="content">  
        <image class="logo" src="/static/logo.png"></image>  
        <view class="text-area">  
            <text class="title">{{title}}</text>  
        </view>  
        <view class="uni-common-mt">  
            <view class="uni-form-item uni-column">  
                <view class="title">输入要保存到leancloud上的数据</view>  
                <input class="uni-input" v-model="title" />  
            </view>  
        </view>  

        <view><button type="primary" @click="onClick">保存到leancloud上</button></view>  
        <view><button type="warn" @click="useSdk">使用sdk保存到leancloud上</button></view>  
        <view><button @click='selPic'>选择图片</button></view>  
        <view><input class="uni-input" :value="leancloudfile"></input></view>  
    </view>  
</template>  

<script>  

    export default {  
        data() {  
            return {  
                title: '',  
                leancloudfile:'' //上传图片到leancloud后的访问地址  
            }  
        },  
        onLoad() {  
            this.title = "Hello" + new Date().getTime();  
        },  
        methods: {  
            useSdk() {  
                // 声明 class  
                const Todo = this.$AV.Object.extend("Post");  

                // 构建对象  
                const todo = new Todo();  

                // 为属性赋值  
                todo.set("content", this.title);  
                todo.set("pubUser", "uniapp测试");  
                todo.set("pubTimestamp", 1435532000)  

                // 将对象保存到云端  
                todo.save().then(  
                    (todo) => {  
                        // 成功保存之后,执行其他逻辑  
                        var str = `保存成功。objectId:${todo.id}`;  
                        console.log(str);  
                        uni.showModal({  
                            content: str  
                        })  
                    },  
                    (error) => {  
                        // 异常处理  
                        console.log(error);  
                    }  
                );  
            },  
            selPic() {  
                var ttt = new Date().getTime();  
                var AV = this.$AV;  
                var thisobj = this;  
                uni.chooseImage({  
                    count: 1, //默认9  
                    sizeType: ['original', 'compressed'], //可以指定是原图还是压缩图,默认二者都有  
                    sourceType: ['album'], //从相册选择  
                    success: function(res) {  
                        console.log(JSON.stringify(res.tempFilePaths));  
                        var data = {  
                            blob: {  
                                uri: res.tempFilePaths[0]  
                            }  
                        };  
                        var file = new AV.File("file" + ttt + ".jpg", data);  
                        file.save().then(  
                            (file) => {  
                                console.log(`文件保存完成。URL:${file.url()}`);  
                                thisobj.leancloudfile = file.url();  
                            },  
                            (error) => {  
                                // 保存失败,可能是文件无法被读取,或者上传过程中出现问题  
                                console.log(error);  
                            }  
                        );  
                    }  
                });  
            },  
            onClick() {  
                var appid = 'XYcw4Xtnm3444dYp79Fg31-gzGzoHsz';  
                var appkey = 'lhciBR33345h4vk0Otym9d';  
                var head = {  
                    "X-LC-Id": appid,  
                    "X-LC-Key": appkey,  
                    "Content-Type": "application/json"  
                };  
                var postdata = {  
                    "content": this.title,  
                    "pubUser": "官方客服",  
                    "pubTimestamp": 1445541999  
                }  
                var url = "https://sss.niunan.net/1.1/classes/Post";  
                uni.request({  
                    url: url,  
                    header: head,  
                    method: "POST",  
                    data: postdata,  
                    success: res => {  
                        uni.showModal({  
                            title: "温馨提示",  
                            content: "状态码:" + res.statusCode + "," + JSON.stringify(res.data)  
                        })  
                    },  
                    fail: res => {  
                        uni.showModal({  
                            content: "出错:" + JSON.stringify(res)  
                        })  
                    }  
                })  

            }  
        }  
    }  
</script>  

<style>  
    .content {  
        display: flex;  
        flex-direction: column;  
        align-items: center;  
        justify-content: center;  
    }  

    .logo {  
        height: 200rpx;  
        width: 200rpx;  
        margin-top: 200rpx;  
        margin-left: auto;  
        margin-right: auto;  
        margin-bottom: 50rpx;  
    }  

    .text-area {  
        display: flex;  
        justify-content: center;  
    }  

    .title {  
        font-size: 36rpx;  
        color: #8f8f94;  
    }  
</style>  

注:先上leancloud上创建好Post对象,不过我测试发现用rest api的话他会自动帮你创建好Post对象的

继续阅读 »

弄了一天,终于弄出来了,哈哈。。真好。。。leancloud免费1g存数据的空间和免费10g存文件的空间足够用了。。。这样以后做app可以不用自己写后台接口部署到自己的服务器上了。。嘿嘿。。真好。。
存json数据还是在看b站的视频的帮助下才弄好的,真是万能的b站。。。
步骤:
1,leancloud文档中心下载av-core-min.js和leancloud-adapters-weapp.js

https://docs.leancloud.cn/sdk/storage/guide/setup-js/#%E5%BE%AE%E4%BF%A1--qq-%E5%B0%8F%E7%A8%8B%E5%BA%8F

hbuilderx中建立uni-app项目,默认是vue2的,直接建就是了,然后建js目录,把上面下载的二个文件粘贴进去

2,main.js中添加如下代码:

import AV from 'js/av-core-min.js'  
import Adapters from 'js/leancloud-adapters-weapp.js'  

AV.setAdapters(Adapters);  
AV.init({  
    appId:"你在leancloud里的项目的appid",  
    appKey:"你在leancloud里的项目的appkey",  
    serverURL:"你在leancloud里的项目的设置里的api访问域名,如:https://aaa.xxx.net"  
});  
Vue.prototype.$AV = AV;

3,index.vue界面代码如下,存json字符串有用rest api和js sdk两种方式存的,上传图片的话只能是用js sdk来上传

<template>  
    <view class="content">  
        <image class="logo" src="/static/logo.png"></image>  
        <view class="text-area">  
            <text class="title">{{title}}</text>  
        </view>  
        <view class="uni-common-mt">  
            <view class="uni-form-item uni-column">  
                <view class="title">输入要保存到leancloud上的数据</view>  
                <input class="uni-input" v-model="title" />  
            </view>  
        </view>  

        <view><button type="primary" @click="onClick">保存到leancloud上</button></view>  
        <view><button type="warn" @click="useSdk">使用sdk保存到leancloud上</button></view>  
        <view><button @click='selPic'>选择图片</button></view>  
        <view><input class="uni-input" :value="leancloudfile"></input></view>  
    </view>  
</template>  

<script>  

    export default {  
        data() {  
            return {  
                title: '',  
                leancloudfile:'' //上传图片到leancloud后的访问地址  
            }  
        },  
        onLoad() {  
            this.title = "Hello" + new Date().getTime();  
        },  
        methods: {  
            useSdk() {  
                // 声明 class  
                const Todo = this.$AV.Object.extend("Post");  

                // 构建对象  
                const todo = new Todo();  

                // 为属性赋值  
                todo.set("content", this.title);  
                todo.set("pubUser", "uniapp测试");  
                todo.set("pubTimestamp", 1435532000)  

                // 将对象保存到云端  
                todo.save().then(  
                    (todo) => {  
                        // 成功保存之后,执行其他逻辑  
                        var str = `保存成功。objectId:${todo.id}`;  
                        console.log(str);  
                        uni.showModal({  
                            content: str  
                        })  
                    },  
                    (error) => {  
                        // 异常处理  
                        console.log(error);  
                    }  
                );  
            },  
            selPic() {  
                var ttt = new Date().getTime();  
                var AV = this.$AV;  
                var thisobj = this;  
                uni.chooseImage({  
                    count: 1, //默认9  
                    sizeType: ['original', 'compressed'], //可以指定是原图还是压缩图,默认二者都有  
                    sourceType: ['album'], //从相册选择  
                    success: function(res) {  
                        console.log(JSON.stringify(res.tempFilePaths));  
                        var data = {  
                            blob: {  
                                uri: res.tempFilePaths[0]  
                            }  
                        };  
                        var file = new AV.File("file" + ttt + ".jpg", data);  
                        file.save().then(  
                            (file) => {  
                                console.log(`文件保存完成。URL:${file.url()}`);  
                                thisobj.leancloudfile = file.url();  
                            },  
                            (error) => {  
                                // 保存失败,可能是文件无法被读取,或者上传过程中出现问题  
                                console.log(error);  
                            }  
                        );  
                    }  
                });  
            },  
            onClick() {  
                var appid = 'XYcw4Xtnm3444dYp79Fg31-gzGzoHsz';  
                var appkey = 'lhciBR33345h4vk0Otym9d';  
                var head = {  
                    "X-LC-Id": appid,  
                    "X-LC-Key": appkey,  
                    "Content-Type": "application/json"  
                };  
                var postdata = {  
                    "content": this.title,  
                    "pubUser": "官方客服",  
                    "pubTimestamp": 1445541999  
                }  
                var url = "https://sss.niunan.net/1.1/classes/Post";  
                uni.request({  
                    url: url,  
                    header: head,  
                    method: "POST",  
                    data: postdata,  
                    success: res => {  
                        uni.showModal({  
                            title: "温馨提示",  
                            content: "状态码:" + res.statusCode + "," + JSON.stringify(res.data)  
                        })  
                    },  
                    fail: res => {  
                        uni.showModal({  
                            content: "出错:" + JSON.stringify(res)  
                        })  
                    }  
                })  

            }  
        }  
    }  
</script>  

<style>  
    .content {  
        display: flex;  
        flex-direction: column;  
        align-items: center;  
        justify-content: center;  
    }  

    .logo {  
        height: 200rpx;  
        width: 200rpx;  
        margin-top: 200rpx;  
        margin-left: auto;  
        margin-right: auto;  
        margin-bottom: 50rpx;  
    }  

    .text-area {  
        display: flex;  
        justify-content: center;  
    }  

    .title {  
        font-size: 36rpx;  
        color: #8f8f94;  
    }  
</style>  

注:先上leancloud上创建好Post对象,不过我测试发现用rest api的话他会自动帮你创建好Post对象的

收起阅读 »

小程序打包为啥会把已经分包出去的文件打包进去

为啥会把分包出去的页面打包进vendor 里面 ,导致文件过大超包

查文档说添加的这个参数
添加
"optimization" : {
"subPackages" : true
}
之后, 直接打包失败,删除语句之后又能打包。。。

着急上线,辛苦帮忙处理一下

继续阅读 »

为啥会把分包出去的页面打包进vendor 里面 ,导致文件过大超包

查文档说添加的这个参数
添加
"optimization" : {
"subPackages" : true
}
之后, 直接打包失败,删除语句之后又能打包。。。

着急上线,辛苦帮忙处理一下

收起阅读 »

原生插件返回JSONObject

uniapp原生插件

原生插件,返回的是JSONObject.到了前端后,刚开是个object,过两天更新了3.7.11后,竟然返回的是个字符串..真是太变态了

原生插件,返回的是JSONObject.到了前端后,刚开是个object,过两天更新了3.7.11后,竟然返回的是个字符串..真是太变态了

css通过背景图片和渐变画虚线

css
  height: 2px;  
  width: 590px;  
  background-image: linear-gradient(90deg, #ddd 50%, transparent 50%);  
  background-size: 36px 2px;
继续阅读 »
  height: 2px;  
  width: 590px;  
  background-image: linear-gradient(90deg, #ddd 50%, transparent 50%);  
  background-size: 36px 2px;
收起阅读 »

插件需求# 需要uts 开发的AI播报插件(双端) 仿例如:番茄小说、七猫小说

uts插件 uni_app 插件需求

插件需求# 需要uts 开发的AI播报插件(双端) 仿 例如:番茄小说、七猫小说 语音播报插件

要求:

1)就是按照上面两个已经有的成熟案例用UTS 去模仿开发 双端
2)分为不消耗流量的(免费音色)、消耗流量的AI (花钱购买AI音色)
3)界面样式可以完全 模仿 二者取其优
3)所有逻辑必须写到UTS中,不准封装到自定义的依赖库中
4)第三方的依赖库jar文件,用户是可以下载。

继续阅读 »

插件需求# 需要uts 开发的AI播报插件(双端) 仿 例如:番茄小说、七猫小说 语音播报插件

要求:

1)就是按照上面两个已经有的成熟案例用UTS 去模仿开发 双端
2)分为不消耗流量的(免费音色)、消耗流量的AI (花钱购买AI音色)
3)界面样式可以完全 模仿 二者取其优
3)所有逻辑必须写到UTS中,不准封装到自定义的依赖库中
4)第三方的依赖库jar文件,用户是可以下载。

收起阅读 »

【ChatGPT】使用UniCloud将Chat GPT接入你的小爱同学中

小爱同学 OpenAI ChatGPT uniCloud

出去玩了,节后再发。

出去玩了,节后再发。

关于自定义基座,调试时,HBuilderX资源不会自动更新的问题

自定义基座,调试时,HBuilderX资源不会自动更新的问题,困扰了一天,各种地方都验证(多数为android本地环境个各种尝试),最后才定位到问题是:

dcloud_control.xml文件中有多个标签:

<app appid="UNI7182A0E" appver="" />,其中几个是注释了的
assets文件夹中也有多个资源目录
删除多余文件和标签后,热更新调试正常
注:
猜想框架调试更新时,框架代码不够严谨,没有处理多目录只使用一个标签时的场景

看论坛没有相关信息,特意录入,方便后面的家人们解决问题

继续阅读 »

自定义基座,调试时,HBuilderX资源不会自动更新的问题,困扰了一天,各种地方都验证(多数为android本地环境个各种尝试),最后才定位到问题是:

dcloud_control.xml文件中有多个标签:

<app appid="UNI7182A0E" appver="" />,其中几个是注释了的
assets文件夹中也有多个资源目录
删除多余文件和标签后,热更新调试正常
注:
猜想框架调试更新时,框架代码不够严谨,没有处理多目录只使用一个标签时的场景

看论坛没有相关信息,特意录入,方便后面的家人们解决问题

收起阅读 »

包年解决开发问题服务,现价1999元/年,原价2999元/年

解决方案

6年开发经验
擅长小程序、H5、Hybrid app、管理后台等开发
工作日30分钟内及时响应
诚信合作,有问题找我
包年解决开发问题服务+指导小白新手入行
现价1999元/年,原价2999元/年,5月31日恢复原价
微信:13513836550,备注:uniapp包年服务

继续阅读 »

6年开发经验
擅长小程序、H5、Hybrid app、管理后台等开发
工作日30分钟内及时响应
诚信合作,有问题找我
包年解决开发问题服务+指导小白新手入行
现价1999元/年,原价2999元/年,5月31日恢复原价
微信:13513836550,备注:uniapp包年服务

收起阅读 »

阿里云云函数直接将网络图片上传云存储

云函数里直接将网络图片上传云存储

const buffer = await uniCloud.httpclient.request(ImageURL, {})

//buffer.data 有些直接请求图片地址返回的不直接是buffer数组,需要再取一层看情况定
let result = await uniCloud.uploadFile({
cloudPath: Number(new Date()) + '.png',
fileContent:buffer
});

最大可上传1M
可以加个判断
if (buffer.data.length > 1024 * 10) {

}

分享个小经验希望能帮到你

继续阅读 »

云函数里直接将网络图片上传云存储

const buffer = await uniCloud.httpclient.request(ImageURL, {})

//buffer.data 有些直接请求图片地址返回的不直接是buffer数组,需要再取一层看情况定
let result = await uniCloud.uploadFile({
cloudPath: Number(new Date()) + '.png',
fileContent:buffer
});

最大可上传1M
可以加个判断
if (buffer.data.length > 1024 * 10) {

}

分享个小经验希望能帮到你

收起阅读 »

兼职uniapp开发,解决bug .9图,ios启动图制作,隐私政策弹框问题

启动图片

10年开发经验,加QQ: 728045048

1.代做 安卓.9.png / iOS苹果storyboard 启动图片,做好满意了再给钱,不满意免费修改;

2.代上架安卓应用市场/苹果APP Store;

3.解决前/后端问题;

4.定制/二次开发app、小程序、各类网站系统。

价格便宜,包满意!包满意!包满意!

继续阅读 »

10年开发经验,加QQ: 728045048

1.代做 安卓.9.png / iOS苹果storyboard 启动图片,做好满意了再给钱,不满意免费修改;

2.代上架安卓应用市场/苹果APP Store;

3.解决前/后端问题;

4.定制/二次开发app、小程序、各类网站系统。

价格便宜,包满意!包满意!包满意!

收起阅读 »

scroll-view触顶加载不顿卡

https://ext.dcloud.net.cn/plugin?id=11946

效果图

https://ext.dcloud.net.cn/plugin?id=11946

效果图