HBuilderX

HBuilderX

极客开发工具
uni-app

uni-app

开发一次,多端覆盖
uniCloud

uniCloud

云开发平台
HTML5+

HTML5+

增强HTML5的功能体验
MUI

MUI

上万Star的前端框架

uview-plus3.0 up-popup与scroll-view使用在ios上出现层级问题

插件讨论

在弹出层中如果使用 scroll-view,在嵌套使用up-popup组件时会出现弹出层的层级以及遮罩层的层级错乱。
解决办法:在编译成微信小程序时 在up-popup外部加一层 <root-portal> </root-portal> 即可

继续阅读 »

在弹出层中如果使用 scroll-view,在嵌套使用up-popup组件时会出现弹出层的层级以及遮罩层的层级错乱。
解决办法:在编译成微信小程序时 在up-popup外部加一层 <root-portal> </root-portal> 即可

收起阅读 »

111

1111111111111111

1111111111111111

Mac系统中hbuilderx 4.65mac版本配置插件总是报打开权限不足

2025-05-18 23:59:58.614 [INFO:] PluginInstall setInstallText: "uniapp-debugger" --- 1 :: "正在下载"
2025-05-18 23:59:58.615 [INFO:] (startdownload "uniapp-debugger" ) get json: "https://update.liuyingyong.cn/hbuilderx/upgrade_repositories/4.65.2025051206/macosx/plugins/index.json"
2025-05-18 23:59:58.907 [INFO:] (startdownload "uniapp-debugger" ) get json: "https://update.liuyingyong.cn/hbuilderx/marketplace/plugin.json"
2025-05-18 23:59:59.209 [INFO:] (startdownload "uniapp-debugger" ) get json: "https://update.liuyingyong.cn/hbuilderx/upgrade_repositories/4.65.2025051206/macosx/update/index.json"
2025-05-18 23:59:59.597 [INFO:] (startdownload "uniapp-debugger" ) downloadpluginzipfromindex
2025-05-18 23:59:59.597 [INFO:] (downloadpluginzipfromindex "uniapp-debugger" ) set state to downloading
2025-05-18 23:59:59.598 [INFO:] (downloadpluginzipfromindex "uniapp-debugger" ) make path: "/Volumes/HBuilderX/HBuilderX.app/Contents/HBuilderX/update/plugins/"
2025-05-18 23:59:59.598 [WARNING:] (startdownload "uniapp-debugger" )[return]downloadpluginzipfromindex: "/Volumes/HBuilderX/HBuilderX.app/Contents/HBuilderX/update/plugins/ 打开权限不足!"
2025-05-18 23:59:59.598 [INFO:] endWatcher: pluginName: "uniapp-debugger" path: "/Volumes/HBuilderX/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-debugger" thread: 13072797696
2025-05-18 23:59:59.599 [INFO:] (startdownload "uniapp-debugger" ) state = downloadfailed
2025-05-18 23:59:59.599 [INFO:] QObject::destroyed state 4
2025-05-18 23:59:59.599 [INFO:] PluginInstall setInstallText: "uniapp-debugger" --- 4 :: "安装"
2025-05-18 23:59:59.611 [WARNING:] QLayout: Attempting to add QLayout "" to MsgItemWidget "MsgItem", which already has a layout
2025-05-19 00:03:07.290 [INFO:] QEvent(WindowActivate, 0x30b00e9d8)
2025-05-19 00:03:11.572 [INFO:] Upgrade::isFallbackedVersion ?
2025-05-19 00:03:11.572 [INFO:] Upgrade::isFallbackedVersion return false
2025-05-19 00:03:11.572 [INFO:] Upgrade::canFallback::check( "/Volumes/HBuilderX/HBuilderX.app/Contents/HBuilderX/update/backup/root/hbuilder.root" ) exits?
2025-05-19 00:03:11.573 [INFO:] Upgrade::canFallback::check return false
2025-05-19 00:03:48.966 [INFO:] QEvent(WindowDeactivate, 0x30b00e9c0)
2025-05-19 00:03:49.047 [INFO:] QEvent(WindowActivate, 0x30b00c6a8)

继续阅读 »

2025-05-18 23:59:58.614 [INFO:] PluginInstall setInstallText: "uniapp-debugger" --- 1 :: "正在下载"
2025-05-18 23:59:58.615 [INFO:] (startdownload "uniapp-debugger" ) get json: "https://update.liuyingyong.cn/hbuilderx/upgrade_repositories/4.65.2025051206/macosx/plugins/index.json"
2025-05-18 23:59:58.907 [INFO:] (startdownload "uniapp-debugger" ) get json: "https://update.liuyingyong.cn/hbuilderx/marketplace/plugin.json"
2025-05-18 23:59:59.209 [INFO:] (startdownload "uniapp-debugger" ) get json: "https://update.liuyingyong.cn/hbuilderx/upgrade_repositories/4.65.2025051206/macosx/update/index.json"
2025-05-18 23:59:59.597 [INFO:] (startdownload "uniapp-debugger" ) downloadpluginzipfromindex
2025-05-18 23:59:59.597 [INFO:] (downloadpluginzipfromindex "uniapp-debugger" ) set state to downloading
2025-05-18 23:59:59.598 [INFO:] (downloadpluginzipfromindex "uniapp-debugger" ) make path: "/Volumes/HBuilderX/HBuilderX.app/Contents/HBuilderX/update/plugins/"
2025-05-18 23:59:59.598 [WARNING:] (startdownload "uniapp-debugger" )[return]downloadpluginzipfromindex: "/Volumes/HBuilderX/HBuilderX.app/Contents/HBuilderX/update/plugins/ 打开权限不足!"
2025-05-18 23:59:59.598 [INFO:] endWatcher: pluginName: "uniapp-debugger" path: "/Volumes/HBuilderX/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-debugger" thread: 13072797696
2025-05-18 23:59:59.599 [INFO:] (startdownload "uniapp-debugger" ) state = downloadfailed
2025-05-18 23:59:59.599 [INFO:] QObject::destroyed state 4
2025-05-18 23:59:59.599 [INFO:] PluginInstall setInstallText: "uniapp-debugger" --- 4 :: "安装"
2025-05-18 23:59:59.611 [WARNING:] QLayout: Attempting to add QLayout "" to MsgItemWidget "MsgItem", which already has a layout
2025-05-19 00:03:07.290 [INFO:] QEvent(WindowActivate, 0x30b00e9d8)
2025-05-19 00:03:11.572 [INFO:] Upgrade::isFallbackedVersion ?
2025-05-19 00:03:11.572 [INFO:] Upgrade::isFallbackedVersion return false
2025-05-19 00:03:11.572 [INFO:] Upgrade::canFallback::check( "/Volumes/HBuilderX/HBuilderX.app/Contents/HBuilderX/update/backup/root/hbuilder.root" ) exits?
2025-05-19 00:03:11.573 [INFO:] Upgrade::canFallback::check return false
2025-05-19 00:03:48.966 [INFO:] QEvent(WindowDeactivate, 0x30b00e9c0)
2025-05-19 00:03:49.047 [INFO:] QEvent(WindowActivate, 0x30b00c6a8)

收起阅读 »

小程序小游戏获客越来越难了

变现 推广

小程序小游戏获客越来越难了,但是通过群分享是最简单有效的方式,我建了个互助群,大家有需要的都可以进来

小程序小游戏获客越来越难了,但是通过群分享是最简单有效的方式,我建了个互助群,大家有需要的都可以进来

打包小程序后多了shadow-grey.png 文件的临时解决办法

common main.wxss 文件会自动加上这些代码 本身这个文件已经无法访问 会导致加载速度变慢不说 还报错(仅导出正式版有 )。

@ - webkit - keyframes shadow - preload {
0 % {
background - image: url(https: //cdn1.dcloud.net.cn/517a6b774d3055775253556c643367344f5455354d3245324f5455334d444d31597a6b77/img/shadow-grey.png)}100%{background-image:url(https://cdn1.dcloud.net.cn/517a6b774d3055775253556c643367344f5455354d3245324f5455334d444d31597a6b77/img/shadow-grey.png)}}@keyframes shadow-preload{0%{background-image:url(https://cdn1.dcloud.net.cn/517a6b774d3055775253556c643367344f5455354d3245324f5455334d444d31597a6b77/img/shadow-grey.png)}100%{background-image:url(https://cdn1.dcloud.net.cn/517a6b774d3055775253556c643367344f5455354d3245324f5455334d444d31597a6b77/img/shadow-grey.png)}}

解决办法:打开你的安装目录
D:\ProgramFiles\HBuilderX\plugins\uniapp-cli\node_modules\@dcloudio\uni-cli-shared\lib\platform.js
把第24行改为

return `${tagName}::after{position:fixed;content:'';left:-1000px;top:-1000px;-webkit-animation:shadow-preload .1s;-webkit-animation-delay:3s;animation:shadow-preload .1s;animation-delay:3s}`

保存后 重新导出程序就没有这个了

继续阅读 »

common main.wxss 文件会自动加上这些代码 本身这个文件已经无法访问 会导致加载速度变慢不说 还报错(仅导出正式版有 )。

@ - webkit - keyframes shadow - preload {
0 % {
background - image: url(https: //cdn1.dcloud.net.cn/517a6b774d3055775253556c643367344f5455354d3245324f5455334d444d31597a6b77/img/shadow-grey.png)}100%{background-image:url(https://cdn1.dcloud.net.cn/517a6b774d3055775253556c643367344f5455354d3245324f5455334d444d31597a6b77/img/shadow-grey.png)}}@keyframes shadow-preload{0%{background-image:url(https://cdn1.dcloud.net.cn/517a6b774d3055775253556c643367344f5455354d3245324f5455334d444d31597a6b77/img/shadow-grey.png)}100%{background-image:url(https://cdn1.dcloud.net.cn/517a6b774d3055775253556c643367344f5455354d3245324f5455334d444d31597a6b77/img/shadow-grey.png)}}

解决办法:打开你的安装目录
D:\ProgramFiles\HBuilderX\plugins\uniapp-cli\node_modules\@dcloudio\uni-cli-shared\lib\platform.js
把第24行改为

return `${tagName}::after{position:fixed;content:'';left:-1000px;top:-1000px;-webkit-animation:shadow-preload .1s;-webkit-animation-delay:3s;animation:shadow-preload .1s;animation-delay:3s}`

保存后 重新导出程序就没有这个了

收起阅读 »

关于更新到新版本,运行到app基座 后 始终卡在ready in ……ms. 基座没反应 解决方案

退回HBuilderX老版本 别更新,我怀疑手机 怀疑数据线 怀疑adb 就是没怀疑版本 我草!!!!!!!!!!!!!

退回HBuilderX老版本 别更新,我怀疑手机 怀疑数据线 怀疑adb 就是没怀疑版本 我草!!!!!!!!!!!!!

“运行到Android App基座"操作

华为手机mate 50, 在进行“运行到Android App基座"操作时,打开USB调试后,只有在“选择USB配置”中选择“音频来源”才能成功。

华为手机mate 50, 在进行“运行到Android App基座"操作时,打开USB调试后,只有在“选择USB配置”中选择“音频来源”才能成功。

【已解决】云打包 iOS SDK 需要 18 或更高的问题

我升级到了最新的稳定版本,然后费劲九牛二虎之力下载了云打包的相关插件(自动提示下载的,一直下载中【估计本机环境问题】......反复操作,折腾下载了24小时),然后最关键的一步:

执行:
npx @dcloudio/uvm@latest

打包后,目前 apple transportor 还没报问题【我点了手动“验证”】,应该不会再报这个错了:

SDK version issue. This app was built with the iOS 17.5 SDK. All iOS and iPadOS apps must be built with the iOS 18 SDK or later, included in Xcode 16 or later, in order to be uploaded to App Store Connect or submitted for distribution. (90725)

继续阅读 »

我升级到了最新的稳定版本,然后费劲九牛二虎之力下载了云打包的相关插件(自动提示下载的,一直下载中【估计本机环境问题】......反复操作,折腾下载了24小时),然后最关键的一步:

执行:
npx @dcloudio/uvm@latest

打包后,目前 apple transportor 还没报问题【我点了手动“验证”】,应该不会再报这个错了:

SDK version issue. This app was built with the iOS 17.5 SDK. All iOS and iPadOS apps must be built with the iOS 18 SDK or later, included in Xcode 16 or later, in order to be uploaded to App Store Connect or submitted for distribution. (90725)

收起阅读 »

关于H5空白页 找了半天故障 交给claude3.7 几分钟解决了

h5

项目使用了一个特殊的 Vue 结构,其中 App.vue 不是直接呈现页面,而是包含一个 App 组件
修复 main.js 中的一些兼容性问题import App from './App'

// #ifndef VUE3
import Vue from 'vue'
import './uni.promisify.adaptor'
Vue.config.productionTip = false
App.mpType = 'app'

// 处理兼容性问题
// #ifdef H5
// 修复 H5 空白页面问题的全局处理
window.addEventListener('DOMContentLoaded', () => {
// 处理初始化加载问题
if (!location.hash || location.hash === '#/') {
// 如果是空hash,尝试恢复到登录页
setTimeout(() => {
const token = uni.getStorageSync('token');
if (!token) {
location.replace(location.pathname + '#/pages/login/login');
}
}, 200);
}
});
// #endif

// 添加全局导航守卫
const whiteList = ['/pages/login/login', '/pages/register/register', '/pages/forget-password/forget-password']

// 处理路由路径,确保正确处理绝对和相对路径
Vue.prototype.$normalizePath = function(url) {
// 如果已经是绝对路径(以/开头),则返回
if (url.startsWith('/')) {
return url;
}
// 否则转换为绝对路径
return '/' + url;
}

Vue.prototype.$checkLogin = function() {
const token = uni.getStorageSync('token')
const userInfo = uni.getStorageSync('userInfo')

// 清理可能存在的mock数据
if (token && token.includes('mock')) {
uni.removeStorageSync('token')
uni.removeStorageSync('userInfo')
return false
}

return token && userInfo && userInfo.userId
}

Vue.prototype.$navigateTo = function(url) {
// 标准化路径
const normalizedUrl = this.$normalizePath(url);

if (!this.$checkLogin() && !whiteList.some(path => normalizedUrl.includes(path))) {
uni.reLaunch({
url: '/pages/login/login'
})
return
}
uni.navigateTo({
url: normalizedUrl
})
}

// #ifdef H5
// 添加全局异常处理
window.addEventListener('error', (e) => {
console.error('全局错误:', e);
// 可以在这里添加错误上报逻辑
});
// #endif

const app = new Vue({
...App
})
app.$mount()
// #endif

// #ifdef VUE3
import { createSSRApp } from 'vue'
export function createApp() {
const app = createSSRApp(App)
return {
app
}
}
// #endif复了 App.vue 的模板结构,保持 <App :keepAliveInclude="keepAliveInclude"> 的原有格式,并将通知弹窗移到内部
添加了 keepAliveInclude 属性,用于缓存主要页面(提高性能)
在 main.js 中添加了全局 DOMContentLoaded 事件处理,修复空白页面问题

继续阅读 »

项目使用了一个特殊的 Vue 结构,其中 App.vue 不是直接呈现页面,而是包含一个 App 组件
修复 main.js 中的一些兼容性问题import App from './App'

// #ifndef VUE3
import Vue from 'vue'
import './uni.promisify.adaptor'
Vue.config.productionTip = false
App.mpType = 'app'

// 处理兼容性问题
// #ifdef H5
// 修复 H5 空白页面问题的全局处理
window.addEventListener('DOMContentLoaded', () => {
// 处理初始化加载问题
if (!location.hash || location.hash === '#/') {
// 如果是空hash,尝试恢复到登录页
setTimeout(() => {
const token = uni.getStorageSync('token');
if (!token) {
location.replace(location.pathname + '#/pages/login/login');
}
}, 200);
}
});
// #endif

// 添加全局导航守卫
const whiteList = ['/pages/login/login', '/pages/register/register', '/pages/forget-password/forget-password']

// 处理路由路径,确保正确处理绝对和相对路径
Vue.prototype.$normalizePath = function(url) {
// 如果已经是绝对路径(以/开头),则返回
if (url.startsWith('/')) {
return url;
}
// 否则转换为绝对路径
return '/' + url;
}

Vue.prototype.$checkLogin = function() {
const token = uni.getStorageSync('token')
const userInfo = uni.getStorageSync('userInfo')

// 清理可能存在的mock数据
if (token && token.includes('mock')) {
uni.removeStorageSync('token')
uni.removeStorageSync('userInfo')
return false
}

return token && userInfo && userInfo.userId
}

Vue.prototype.$navigateTo = function(url) {
// 标准化路径
const normalizedUrl = this.$normalizePath(url);

if (!this.$checkLogin() && !whiteList.some(path => normalizedUrl.includes(path))) {
uni.reLaunch({
url: '/pages/login/login'
})
return
}
uni.navigateTo({
url: normalizedUrl
})
}

// #ifdef H5
// 添加全局异常处理
window.addEventListener('error', (e) => {
console.error('全局错误:', e);
// 可以在这里添加错误上报逻辑
});
// #endif

const app = new Vue({
...App
})
app.$mount()
// #endif

// #ifdef VUE3
import { createSSRApp } from 'vue'
export function createApp() {
const app = createSSRApp(App)
return {
app
}
}
// #endif复了 App.vue 的模板结构,保持 <App :keepAliveInclude="keepAliveInclude"> 的原有格式,并将通知弹窗移到内部
添加了 keepAliveInclude 属性,用于缓存主要页面(提高性能)
在 main.js 中添加了全局 DOMContentLoaded 事件处理,修复空白页面问题

收起阅读 »

什么时候能支持设置网络访问代理功能?

Hbuilder X什么时候能支持设置网络访问代理功能?让我们这些内网开发者也能丝滑使用起来?

Hbuilder X什么时候能支持设置网络访问代理功能?让我们这些内网开发者也能丝滑使用起来?

uni-app h5项目在linux系统运行,打包

Linux HBuilderX CLI

微信有了linux,更换ubunut24.04.1系统进行日常工作,发现hbuilderx可视化并未推出,只能在cli模式下进行开发。手上有个旧版uniapp的h5项目,搜了官方文档,没有找到相关运行的文档,记录分享给有需要的朋友,如有不当,还请指出。
cli 文档地址:https://hx.dcloud.net.cn/cli/README,下载地址:https://ask.dcloud.net.cn/article/41469

开发

1.启动xbuilder cli open
2.登录账号 cli user login --username <用户名> --password <密码>
3.导入项目。 cli project open --path 项目路径

  1. 进入HBuilderX/plugins/node 查看node版本,运行nvm use node版本号,使用对应的node版本号。
  2. 进入到 HBuilderX/plugins/uniapp-cli 目录,运行UNI_INPUT_DIR=填写项目路径UNI_OUTPUT_DIR=填写项目路径/unpackage/dist/dev/h5 UNI_PLATFORM=h5 NODE_ENV=development node bin/uniapp-cli.js

打包

cli publish --platform h5 --project 项目名称

继续阅读 »

微信有了linux,更换ubunut24.04.1系统进行日常工作,发现hbuilderx可视化并未推出,只能在cli模式下进行开发。手上有个旧版uniapp的h5项目,搜了官方文档,没有找到相关运行的文档,记录分享给有需要的朋友,如有不当,还请指出。
cli 文档地址:https://hx.dcloud.net.cn/cli/README,下载地址:https://ask.dcloud.net.cn/article/41469

开发

1.启动xbuilder cli open
2.登录账号 cli user login --username <用户名> --password <密码>
3.导入项目。 cli project open --path 项目路径

  1. 进入HBuilderX/plugins/node 查看node版本,运行nvm use node版本号,使用对应的node版本号。
  2. 进入到 HBuilderX/plugins/uniapp-cli 目录,运行UNI_INPUT_DIR=填写项目路径UNI_OUTPUT_DIR=填写项目路径/unpackage/dist/dev/h5 UNI_PLATFORM=h5 NODE_ENV=development node bin/uniapp-cli.js

打包

cli publish --platform h5 --project 项目名称

收起阅读 »

希望增加多一些快捷方式

快捷键

增加IDEA的高亮词汇,按ctrl可以快速跳转到引用代码块等

增加IDEA的高亮词汇,按ctrl可以快速跳转到引用代码块等