HBuilderX

HBuilderX

极客开发工具
uni-app

uni-app

开发一次,多端覆盖
uniCloud

uniCloud

云开发平台
HTML5+

HTML5+

增强HTML5的功能体验
MUI

MUI

上万Star的前端框架

打包小程序后多了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可以快速跳转到引用代码块等

关于荣耀手机9.0版本真机调试,Hbuilder一直搜索不到设备问题

真机调试

类似关于USB调试的方法大家已经看过很多,也都尝试过了,如果还是不行,可以看看,我的办法能否解决。

在开发人员选项中,恢复默认设置,然后重新多次点击版本号进入开发者模式:
在开发人员选项中,开启USB调试,USB配置为传输文件(多媒体传输);
关闭Hbuilder并重新打开,运行——手机或模拟器——运行到安卓app基座,这时就可以看到我们的设备已经出现了。
连接正常,可以进行测试了。
ps:本人使用的是mac电脑,但在windows电脑也出现相同问题。
在开发人员选项——选择待调试应用功能,已经不是不可选中了,可以勾选Hbuilder应用。

继续阅读 »

类似关于USB调试的方法大家已经看过很多,也都尝试过了,如果还是不行,可以看看,我的办法能否解决。

在开发人员选项中,恢复默认设置,然后重新多次点击版本号进入开发者模式:
在开发人员选项中,开启USB调试,USB配置为传输文件(多媒体传输);
关闭Hbuilder并重新打开,运行——手机或模拟器——运行到安卓app基座,这时就可以看到我们的设备已经出现了。
连接正常,可以进行测试了。
ps:本人使用的是mac电脑,但在windows电脑也出现相同问题。
在开发人员选项——选择待调试应用功能,已经不是不可选中了,可以勾选Hbuilder应用。

收起阅读 »

关于荣耀Magic UI系列HBuilder真机调试检测不到解决办法

真机调试

magicOS9 ,刚更新的Hbuildrx4.57

手机电脑端都下载荣耀手机助手,用数据线连接

找到hbuilderx 工具-设置-运行配置-adb路径 换成HBuilderX目录下 plugins\launcher-tools\tools\adbs\1.0.36\adb.exe

USB连接方式-仅充电

开启了“仅充电”模式下允许ADB调试
选择待调试应用

打开hbuilderx 运行-运行到手机或模拟器-运行到Android App基座

摘自:水目

继续阅读 »

magicOS9 ,刚更新的Hbuildrx4.57

手机电脑端都下载荣耀手机助手,用数据线连接

找到hbuilderx 工具-设置-运行配置-adb路径 换成HBuilderX目录下 plugins\launcher-tools\tools\adbs\1.0.36\adb.exe

USB连接方式-仅充电

开启了“仅充电”模式下允许ADB调试
选择待调试应用

打开hbuilderx 运行-运行到手机或模拟器-运行到Android App基座

摘自:水目

收起阅读 »

IOS企业证书分享 供各位打包用的

iOS证书

密码:在压缩包里

密码:在压缩包里