HBuilderX

HBuilderX

极客开发工具
uni-app

uni-app

开发一次,多端覆盖
uniCloud

uniCloud

云开发平台
HTML5+

HTML5+

增强HTML5的功能体验
MUI

MUI

上万Star的前端框架

用户体验极不好,项目无法工程化

系统功能权限 IDE

都2024年了,HbuilderX IDE 登录还需要手动输入帐号密码,不能做一下浏览器登录跳转吗?另外不能支持一下系统级别的其它的密码自动完成吗?自定义发行不支持cli,导致项目无法工程化,每次都需要手动使用IDE执行,极其恶心

都2024年了,HbuilderX IDE 登录还需要手动输入帐号密码,不能做一下浏览器登录跳转吗?另外不能支持一下系统级别的其它的密码自动完成吗?自定义发行不支持cli,导致项目无法工程化,每次都需要手动使用IDE执行,极其恶心

uni-list 中的的loadmore事件不执行

nvue 中 uni-list 的loadmore不执行。
研究了 一天,发现龟儿 ,
1、
uni-list 的组件中,有写事件代码,但是没有绑定到 list组件中
loadMore(e) {
this.$emit('scrolltolower');
},
既然这样,我就给他帮上。我就复制了 loadMore 粘贴到 组件上,于是
<list :bounce="false" :scrollable="true" show-scrollbar :render-reverse="renderReverse" @scroll="scroll" class="uni-list" :class="{ 'uni-list--border': border }" :enableBackToTop="enableBackToTop"
loadmoreoffset="15" @loadMore="loadMore" >
坑来了,这样加上还是没有。

2、一遍一遍又看 了文档,开始觉得这球玩意是不是真的不支持。也许是因为这样,所以才没有添加的,但是list得文档说是支持的。
于是,一个字一个字看文档。最后发现 loadmore的这个m是小写的,于是就成功过了。真tm坑了我一天时间。

继续阅读 »

nvue 中 uni-list 的loadmore不执行。
研究了 一天,发现龟儿 ,
1、
uni-list 的组件中,有写事件代码,但是没有绑定到 list组件中
loadMore(e) {
this.$emit('scrolltolower');
},
既然这样,我就给他帮上。我就复制了 loadMore 粘贴到 组件上,于是
<list :bounce="false" :scrollable="true" show-scrollbar :render-reverse="renderReverse" @scroll="scroll" class="uni-list" :class="{ 'uni-list--border': border }" :enableBackToTop="enableBackToTop"
loadmoreoffset="15" @loadMore="loadMore" >
坑来了,这样加上还是没有。

2、一遍一遍又看 了文档,开始觉得这球玩意是不是真的不支持。也许是因为这样,所以才没有添加的,但是list得文档说是支持的。
于是,一个字一个字看文档。最后发现 loadmore的这个m是小写的,于是就成功过了。真tm坑了我一天时间。

收起阅读 »

【公告】uni-app启动鸿蒙元服务立项

鸿蒙next

uni-app团队已启动鸿蒙元服务的支持工作,预计11月中下旬发布alpha版本,12月底发布正式版本。

今年的元服务版本,仅支持vue3。

另外,uni-app对于鸿蒙App的支持,仅支持vue3,未来不考虑支持vue2,请各位开发者尽快升级vue3版本。

关联阅读:

继续阅读 »

uni-app团队已启动鸿蒙元服务的支持工作,预计11月中下旬发布alpha版本,12月底发布正式版本。

今年的元服务版本,仅支持vue3。

另外,uni-app对于鸿蒙App的支持,仅支持vue3,未来不考虑支持vue2,请各位开发者尽快升级vue3版本。

关联阅读:

收起阅读 »

【IOS相册权限】Native.js IOS相册权限获取 弹窗请求授权

Native.JS

优化官方推荐的uni.authorize文档中permission.js中的相册授权方法,判断是否有授权没有则弹窗请求授权。
发现很多小伙伴有这个需求,自己也在网上搜索了一番无果。
在此分享出来,方便大家开发。

// 判断相册权限是否开启 resolve()返回值可以根据需求更具体一点,在业务中拿到状态码后弹窗提示用户是否要去设置页修改权限  
function judgeIosPermissionPhotoLibrary() {  
    return new Promise((resolve, reject) => {  
        var PHAuthorizationStatus = {  
            NotDetermined: 0, // 未申请过权限  
            Restricted: 1, // 拒绝  
            Denied: 2,  // 拒绝  
            Authorized: 3, // 拥有  
            Limited: 4 // iOS 14 新增  
        };  
        if (!PHPhotoLibrary) {  
            var PHPhotoLibrary = plus.ios.import("PHPhotoLibrary");  
        }  
        var status  = PHPhotoLibrary.authorizationStatus();  
        if (status === PHAuthorizationStatus.NotDetermined) {  
            PHPhotoLibrary.requestAuthorization(() => {  
                const status = PHPhotoLibrary.authorizationStatus(); {  
                    if (status === PHAuthorizationStatus.Authorized) {  
                        plus.ios.deleteObject(PHPhotoLibrary);  
                        resolve(true)  
                    } else {  
                        plus.ios.deleteObject(PHPhotoLibrary);  
                        resolve(false)  
                    }  
                }  
            })  
        } else if (status === PHAuthorizationStatus.Authorized) {  
            plus.ios.deleteObject(PHPhotoLibrary);  
            resolve(true)  
        } else {  
            if (status === PHAuthorizationStatus.Denied || status === PHAuthorizationStatus.Restricted) {  
                console.log("您已拒绝访问相册权限,请在设置中手动开启。");   
            } else if (status === PHAuthorizationStatus.Limited) {  
                console.log("相册权限为有限访问。");   
            }  
            plus.ios.deleteObject(PHPhotoLibrary);  
            resolve(false)  
        }     
    })  

}
继续阅读 »

优化官方推荐的uni.authorize文档中permission.js中的相册授权方法,判断是否有授权没有则弹窗请求授权。
发现很多小伙伴有这个需求,自己也在网上搜索了一番无果。
在此分享出来,方便大家开发。

// 判断相册权限是否开启 resolve()返回值可以根据需求更具体一点,在业务中拿到状态码后弹窗提示用户是否要去设置页修改权限  
function judgeIosPermissionPhotoLibrary() {  
    return new Promise((resolve, reject) => {  
        var PHAuthorizationStatus = {  
            NotDetermined: 0, // 未申请过权限  
            Restricted: 1, // 拒绝  
            Denied: 2,  // 拒绝  
            Authorized: 3, // 拥有  
            Limited: 4 // iOS 14 新增  
        };  
        if (!PHPhotoLibrary) {  
            var PHPhotoLibrary = plus.ios.import("PHPhotoLibrary");  
        }  
        var status  = PHPhotoLibrary.authorizationStatus();  
        if (status === PHAuthorizationStatus.NotDetermined) {  
            PHPhotoLibrary.requestAuthorization(() => {  
                const status = PHPhotoLibrary.authorizationStatus(); {  
                    if (status === PHAuthorizationStatus.Authorized) {  
                        plus.ios.deleteObject(PHPhotoLibrary);  
                        resolve(true)  
                    } else {  
                        plus.ios.deleteObject(PHPhotoLibrary);  
                        resolve(false)  
                    }  
                }  
            })  
        } else if (status === PHAuthorizationStatus.Authorized) {  
            plus.ios.deleteObject(PHPhotoLibrary);  
            resolve(true)  
        } else {  
            if (status === PHAuthorizationStatus.Denied || status === PHAuthorizationStatus.Restricted) {  
                console.log("您已拒绝访问相册权限,请在设置中手动开启。");   
            } else if (status === PHAuthorizationStatus.Limited) {  
                console.log("相册权限为有限访问。");   
            }  
            plus.ios.deleteObject(PHPhotoLibrary);  
            resolve(false)  
        }     
    })  

}
收起阅读 »

uni-app打包H5自动请求shadow-grey.png的问题

反应H5加载很慢,排查有个图片耗时较多,“https://cdn.dcloud.net.cn/img/shadow-grey.png”

这个图片是导航栏底边阴影效果预加载加速显示用的,如果不需要参考下面的配置。

app.vue 文件添加如下css,经测已正常。  
<style>  
    body::after {  
        content: none !important;  
    }  
</style>
继续阅读 »

反应H5加载很慢,排查有个图片耗时较多,“https://cdn.dcloud.net.cn/img/shadow-grey.png”

这个图片是导航栏底边阴影效果预加载加速显示用的,如果不需要参考下面的配置。

app.vue 文件添加如下css,经测已正常。  
<style>  
    body::after {  
        content: none !important;  
    }  
</style>
收起阅读 »

分享一个第三方unicloud省市区数据库,顺便反馈一个bug

省市选择

github地址 https://github.com/6613974/unicloud-china-city

==============================================
bug反馈, 客户端云数据库查询不支持地理查询(所有操作)均为==右侧值错误
示例代码需要在云函数内执行查询。

地图收费贵,uni自带的数据库个人不适应,重新整理了这个数据。 不需要基于经纬度的地理查询可以删除字段极大减小数据空间占用。
姑且算是满足了县级的地理逆解析,用小程序的可以用免费的经纬度接口配合查询。
==============================================
unicloud-china-city-geo
适用于unicloud于mongodb的大陆地区省市区及轮廓数据(gcj02)

数据来源
高德地图抓取

创建表
使用hubildX在database目录下用city-china.schema.json创建表,用city-china.json创建索引,或直接在unicloud控制台手动创建并添加索引,mongodb下自行修改导入文件格式

字段说明
code 唯一ID,省为两位,市四位,县六位 如北京为11 北京市1101 北京市西城区 110102
parent_code 上级ID 省级为null
name 地区简称 如北京
fullname 地区全称 如北京市
path 地区完整路径,如 北京市 北京市 西城区
pinyin 地区名称拼音 如 beijing
type 地区类型 0 省 1市 2县
first_letter 地区拼音首字母大写 如B
geometry 轮廓数据
基于经纬度的省市区查询
// 请在云函数中执行查询,uni-app本地无法执行地理查询
// lat 经度值 浮点数类型
// lng 纬度值 浮点数类型
const {errCode, data} = await db.collection('city')
.where({
geometry: db.command.geoIntersects({
geometry: db.Geo.Point(lat, lng)
})
})
.field({
code:true,
parent_code:true,
name:true,
fullname:true,
type:true,
first_letter:true,
pinyin:true,
})
.get()
省市区查询
省市区保存时只需保存最后一及的数值,以北京市西城区为例,110102, 可在path字段获取完整的省市区名称,无需二次查询
有时需要通过code反查上级code, 如北京可提取前两位获取11,北京市提取前4位即1101,无需反复查询数据库。
要查所有的省可以通过parent_code为null进行查询
要查北京下所有的市可模糊查询code为11开头且type为1
要查北京市下所有的区可模糊查询code为1101开头且type为2
可通过拼音或首字母进行搜索
不需要地理位置时可删除geometry字段可极大建设数据库空间占用
备注
数据来自高德,仅包括中国大陆地区,港、澳、台缺少轮廓数据的值为null

继续阅读 »

github地址 https://github.com/6613974/unicloud-china-city

==============================================
bug反馈, 客户端云数据库查询不支持地理查询(所有操作)均为==右侧值错误
示例代码需要在云函数内执行查询。

地图收费贵,uni自带的数据库个人不适应,重新整理了这个数据。 不需要基于经纬度的地理查询可以删除字段极大减小数据空间占用。
姑且算是满足了县级的地理逆解析,用小程序的可以用免费的经纬度接口配合查询。
==============================================
unicloud-china-city-geo
适用于unicloud于mongodb的大陆地区省市区及轮廓数据(gcj02)

数据来源
高德地图抓取

创建表
使用hubildX在database目录下用city-china.schema.json创建表,用city-china.json创建索引,或直接在unicloud控制台手动创建并添加索引,mongodb下自行修改导入文件格式

字段说明
code 唯一ID,省为两位,市四位,县六位 如北京为11 北京市1101 北京市西城区 110102
parent_code 上级ID 省级为null
name 地区简称 如北京
fullname 地区全称 如北京市
path 地区完整路径,如 北京市 北京市 西城区
pinyin 地区名称拼音 如 beijing
type 地区类型 0 省 1市 2县
first_letter 地区拼音首字母大写 如B
geometry 轮廓数据
基于经纬度的省市区查询
// 请在云函数中执行查询,uni-app本地无法执行地理查询
// lat 经度值 浮点数类型
// lng 纬度值 浮点数类型
const {errCode, data} = await db.collection('city')
.where({
geometry: db.command.geoIntersects({
geometry: db.Geo.Point(lat, lng)
})
})
.field({
code:true,
parent_code:true,
name:true,
fullname:true,
type:true,
first_letter:true,
pinyin:true,
})
.get()
省市区查询
省市区保存时只需保存最后一及的数值,以北京市西城区为例,110102, 可在path字段获取完整的省市区名称,无需二次查询
有时需要通过code反查上级code, 如北京可提取前两位获取11,北京市提取前4位即1101,无需反复查询数据库。
要查所有的省可以通过parent_code为null进行查询
要查北京下所有的市可模糊查询code为11开头且type为1
要查北京市下所有的区可模糊查询code为1101开头且type为2
可通过拼音或首字母进行搜索
不需要地理位置时可删除geometry字段可极大建设数据库空间占用
备注
数据来自高德,仅包括中国大陆地区,港、澳、台缺少轮廓数据的值为null

收起阅读 »

【解决】uni.createRequestPermissionListener()安卓离线打包问题

本地打包 App离线打包 Android 安卓

注意:如果hbuildx版本更新,离线打包的相关sdk都需要更新,避免出问题

一、首先需要Hbuilderx版本需大于等于4.21,离线sdk下载相对应版本

具体看官方回复:https://ask.dcloud.net.cn/question/193097,截图如下:

二、复制以下sdk:utsplugin-release.aar、uni-createRequestPermissionListener-release.aar

三、粘贴sdk到安卓的以下目录:

四、在项目的build.gradle添加以下代码,可以直接看官方文档:https://nativesupport.dcloud.net.cn/AppDocs/usemodule/androidModuleConfig/uts.html

1、在app级的build.gradle配置

implementation "com.squareup.okhttp3:okhttp:3.12.12"  
implementation "androidx.core:core-ktx:1.6.0"  
implementation "org.jetbrains.kotlin:kotlin-stdlib:1.8.10"  
implementation "org.jetbrains.kotlin:kotlin-reflect:1.6.0"  
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:1.3.8"  
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:1.3.8"  
implementation "com.github.getActivity:XXPermissions:18.0"

2、在项目根目录的build.gradle下添加jitpack依赖

maven {url 'https://jitpack.io'}

五、初次编译或者每次有改动都点击一下“Sync Project with Gradle Files”按钮

六、看是要运行还是要打包

↓↓↓ 各位大佬点点赞

继续阅读 »

注意:如果hbuildx版本更新,离线打包的相关sdk都需要更新,避免出问题

一、首先需要Hbuilderx版本需大于等于4.21,离线sdk下载相对应版本

具体看官方回复:https://ask.dcloud.net.cn/question/193097,截图如下:

二、复制以下sdk:utsplugin-release.aar、uni-createRequestPermissionListener-release.aar

三、粘贴sdk到安卓的以下目录:

四、在项目的build.gradle添加以下代码,可以直接看官方文档:https://nativesupport.dcloud.net.cn/AppDocs/usemodule/androidModuleConfig/uts.html

1、在app级的build.gradle配置

implementation "com.squareup.okhttp3:okhttp:3.12.12"  
implementation "androidx.core:core-ktx:1.6.0"  
implementation "org.jetbrains.kotlin:kotlin-stdlib:1.8.10"  
implementation "org.jetbrains.kotlin:kotlin-reflect:1.6.0"  
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:1.3.8"  
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:1.3.8"  
implementation "com.github.getActivity:XXPermissions:18.0"

2、在项目根目录的build.gradle下添加jitpack依赖

maven {url 'https://jitpack.io'}

五、初次编译或者每次有改动都点击一下“Sync Project with Gradle Files”按钮

六、看是要运行还是要打包

↓↓↓ 各位大佬点点赞

收起阅读 »

小程序预览时,显示空白页,首页没有显示

我的小程序有基本的功能,我想看看在手机上实际的效果,结果扫描小程序预览二维码后,总是显示一个空白页。一开始我以为是网速慢什么原因,尝试分包下载,结果还是一样。后来我就用微信小程序开发工具生成一个最简单的hello小程序,再预览,效果还是一样。后来我选择一个单页面模板,再试,结果显示”页面没找到'。我想就一个页面怎么会没找到呢?细看扫描页面,发现有个页面设置,我以前设置了一个预览页面,现在改了代码,那个页面不存在了。

总结以下:小程序预览时,预设的路径如果不是首页,可能会显示空白页,甚至不报错。

继续阅读 »

我的小程序有基本的功能,我想看看在手机上实际的效果,结果扫描小程序预览二维码后,总是显示一个空白页。一开始我以为是网速慢什么原因,尝试分包下载,结果还是一样。后来我就用微信小程序开发工具生成一个最简单的hello小程序,再预览,效果还是一样。后来我选择一个单页面模板,再试,结果显示”页面没找到'。我想就一个页面怎么会没找到呢?细看扫描页面,发现有个页面设置,我以前设置了一个预览页面,现在改了代码,那个页面不存在了。

总结以下:小程序预览时,预设的路径如果不是首页,可能会显示空白页,甚至不报错。

收起阅读 »

swiper内容中使用uview中image图片组件在H5端卡顿问题

swiper h5

解决:换成原生image组件即可。

解决:换成原生image组件即可。

全职外包接单,个人开发者承接app、小程序、网页外包

uniapp 外包接单 外包

全职在家承接外包,多年外包经验,个人开发者,绝对实惠靠谱,有很多款线上应用(度是自己开发的,自己独立完成,可查)

可做商城类,社交类,工具类,任务平台类,mes 类等,除了游戏和带颜色的,其他度可以开发

可承接安卓/IOS、各个端的小程序、H5网页、PC网页开发,从前端到后端,我全度会,一条龙服务

有需要开发的并能看得上我的请联系我哈

vx:wu1020yt

各位同行就别在下面打广告了谢谢,很不礼貌的

继续阅读 »

全职在家承接外包,多年外包经验,个人开发者,绝对实惠靠谱,有很多款线上应用(度是自己开发的,自己独立完成,可查)

可做商城类,社交类,工具类,任务平台类,mes 类等,除了游戏和带颜色的,其他度可以开发

可承接安卓/IOS、各个端的小程序、H5网页、PC网页开发,从前端到后端,我全度会,一条龙服务

有需要开发的并能看得上我的请联系我哈

vx:wu1020yt

各位同行就别在下面打广告了谢谢,很不礼貌的

收起阅读 »

uniCloud 三个云厂商的功能差异汇总,持续更新中

uniCloud

前言

官方已抹平了三个云厂商的绝大部分差异,但是还有部分功能表现不一致,或语法不统一等。
此表格汇总目前已知差异,旨在为开发者提供参考,无论是在首次选择云厂商,还是后期切换厂商,都能做到心中有数。

群策群力

一个人的精力有限,欢迎每一位开发者在留言中补充更多差异项。

套餐区别及云资源限制差异

官方已整理汇总,点击查看官方文档

云函数/云对象差异

功能项 腾讯云 阿里云 支付宝云 详情 备注
云函数数量限制 149 99 499 - -
最大超时时间 30秒 120秒 180秒 - 如果超时时间不够用,可递归调用云函数
定时任务单次最大运行时间 15分钟 2小时 3小时 - -
QPS 500-1w 1k 2k - -
云端安装node_modules - npm包不占用云函数体积
读取文件路径 相对路径、绝对路径 相对路径 相对路径 - -
云函数内访问其他服务空间 查看 -
实例回收时间 30分钟 15分钟 60秒 - 实例回收后,下次访问会触发冷启动
单实例多并发 查看 -
node版本 node8.9.4(可改node12) node16(可改node12) node18(可改node16) 查看 腾讯云使用node12时,可配置return后是否继续执行
时区 UTC+0 UTC+0 UTC+8 - 本地运行时是电脑的时区
WebSocket - 客户端需使用uni-app x
固定出口IP - - - 查看 -
IP防刷 基于Redis 基于Redis 网关层面 - -
- - - - - -

云数据库差异

功能项 腾讯云 阿里云 支付宝云 详情 备注
集合数量限制 300 100 400 - -
_id区别 32位的字符串类型 24位的ObjectId类型 24位的字符串类型 查看 -
数据库回档 - - 查看 -
JQL运算 - - 查看 -

前端网页托管差异

功能项 腾讯云 阿里云 支付宝云 详情 备注
history模式 查看 -
gzip压缩 查看 -
防盗链 查看 -
删除非空文件夹 查看 -
继续阅读 »

前言

官方已抹平了三个云厂商的绝大部分差异,但是还有部分功能表现不一致,或语法不统一等。
此表格汇总目前已知差异,旨在为开发者提供参考,无论是在首次选择云厂商,还是后期切换厂商,都能做到心中有数。

群策群力

一个人的精力有限,欢迎每一位开发者在留言中补充更多差异项。

套餐区别及云资源限制差异

官方已整理汇总,点击查看官方文档

云函数/云对象差异

功能项 腾讯云 阿里云 支付宝云 详情 备注
云函数数量限制 149 99 499 - -
最大超时时间 30秒 120秒 180秒 - 如果超时时间不够用,可递归调用云函数
定时任务单次最大运行时间 15分钟 2小时 3小时 - -
QPS 500-1w 1k 2k - -
云端安装node_modules - npm包不占用云函数体积
读取文件路径 相对路径、绝对路径 相对路径 相对路径 - -
云函数内访问其他服务空间 查看 -
实例回收时间 30分钟 15分钟 60秒 - 实例回收后,下次访问会触发冷启动
单实例多并发 查看 -
node版本 node8.9.4(可改node12) node16(可改node12) node18(可改node16) 查看 腾讯云使用node12时,可配置return后是否继续执行
时区 UTC+0 UTC+0 UTC+8 - 本地运行时是电脑的时区
WebSocket - 客户端需使用uni-app x
固定出口IP - - - 查看 -
IP防刷 基于Redis 基于Redis 网关层面 - -
- - - - - -

云数据库差异

功能项 腾讯云 阿里云 支付宝云 详情 备注
集合数量限制 300 100 400 - -
_id区别 32位的字符串类型 24位的ObjectId类型 24位的字符串类型 查看 -
数据库回档 - - 查看 -
JQL运算 - - 查看 -

前端网页托管差异

功能项 腾讯云 阿里云 支付宝云 详情 备注
history模式 查看 -
gzip压缩 查看 -
防盗链 查看 -
删除非空文件夹 查看 -
收起阅读 »

个人兼职接单,前后端皆可开发

外包接单

技术栈:uniapp、uniappX、uniCloud、taro、vue、react、react native、原生小程序、nodejs相关等,有项目来+ vx172537,低价优品,极致性价比

技术栈:uniapp、uniappX、uniCloud、taro、vue、react、react native、原生小程序、nodejs相关等,有项目来+ vx172537,低价优品,极致性价比