HBuilderX

HBuilderX

极客开发工具
uni-app

uni-app

开发一次,多端覆盖
uniCloud

uniCloud

云开发平台
HTML5+

HTML5+

增强HTML5的功能体验
MUI

MUI

上万Star的前端框架

node内存泄漏,严重影响开发,无法解决

node

有遇到的大神没,我现在HbuildX的版本是3.7.3版本

有遇到的大神没,我现在HbuildX的版本是3.7.3版本

发士大夫发射点

332323

332323

iphone13(15.4)mp4的视频播放不了 h5

iphonex iPhone 视频

iphone13(15.4)mp4的视频播放不了

在微信里打开h5页面,有的苹果手机可以正常全屏播放视频,有的苹果手机(iphone13)有些可以播放,有的就是闪一下就没有任何画面显示,
经排查,js没有报错
现在明确就是兼容导致的,
1.html的兼容问题,一般为视频不能播放,就是全都不能播放,只需通过标签或属性的修改就可以播放了,具体的百度一下,你就知道了。

  1. 视频格式或编码的问题,需要做测试以明确问题,一般是视频重新转码。
  2. 硬件的问题,这种与2基本相同,试着把视频转为符合硬件要求的格式或编码,但是一般不会出现这种问题,硬件的问题基本无解。
继续阅读 »

iphone13(15.4)mp4的视频播放不了

在微信里打开h5页面,有的苹果手机可以正常全屏播放视频,有的苹果手机(iphone13)有些可以播放,有的就是闪一下就没有任何画面显示,
经排查,js没有报错
现在明确就是兼容导致的,
1.html的兼容问题,一般为视频不能播放,就是全都不能播放,只需通过标签或属性的修改就可以播放了,具体的百度一下,你就知道了。

  1. 视频格式或编码的问题,需要做测试以明确问题,一般是视频重新转码。
  2. 硬件的问题,这种与2基本相同,试着把视频转为符合硬件要求的格式或编码,但是一般不会出现这种问题,硬件的问题基本无解。
收起阅读 »

鼠标跟随动画

<!-- 鼠标跟随动画 -->
<script type="text/javascript">
$(function() {
var body = $("body");
if(!($(window).width() > 768)) {return;}
var cursor = $("<div>").addClass("saf-cursor");
cursor.append("<div class='saf-wrapper'></div>");
body.append(cursor);
var _cursor = cursor.get(0);
body.get(0).addEventListener("mousemove", function(e) {
_cursor.style.transform = "translate("+e.clientX+"px, "+e.clientY+"px)";
});
let img_mouse_move = (Box, class_name) => {
$(Box).find("a,.jom_picGallery,.jom_navButton").hover(function() {
cursor.addClass("saf-on saf-hover");
}, function() {
cursor.removeClass("saf-on saf-hover");
});
}
img_mouse_move(".min", ".jom_cursorChange");
});
</script>
<style>
.saf-cursor {height: 10px;width: 10px;border-radius: 50%;background-color: #333;position: fixed;left: -5px;top: -5px;z-index: 99999996;pointer-events: none !important;mix-blend-mode: difference;}
.saf-cursor:before {content: "";position: absolute;display: block;border-radius: 50%;width: 40px;height: 40px;left: 50%;top: 50%;transform: translate(-50%,-50%);color: #fff;font-size: 0.6rem;line-height: 1.6;transition: all 0.5s;opacity: 0;text-align: center;}
.saf-cursor.saf-on:before {content: "Click";opacity: 1;}
.saf-cursor .saf-wrapper {animation: cn-rotate 5s linear infinite;position: absolute;width: 50px;height: 50px;border-radius: 50%;top: 50%;left: 50%;transform: translate(-50%,-50%);pointer-events: none !important;mix-blend-mode: difference;transition: 1s;background: #333;transition: all 0.8s;}
.saf-cursor.saf-on .saf-wrapper {width: 100px;height: 100px;transform: translate(-50%,-50%);}
.saf-cursor .saf-wrapper:before {content: "";display: block;width: 100%;height: 100%;border-radius: 50%;left: 0;top: 0;transform: scale(1.1);border: 1px #333 dashed;}
@keyframes cn-rotate {
0% {transform: translate(-50%,-50%) rotate(0deg)}
100% {transform: translate(-50%,-50%) rotate(360deg)}
}
</style>

继续阅读 »

<!-- 鼠标跟随动画 -->
<script type="text/javascript">
$(function() {
var body = $("body");
if(!($(window).width() > 768)) {return;}
var cursor = $("<div>").addClass("saf-cursor");
cursor.append("<div class='saf-wrapper'></div>");
body.append(cursor);
var _cursor = cursor.get(0);
body.get(0).addEventListener("mousemove", function(e) {
_cursor.style.transform = "translate("+e.clientX+"px, "+e.clientY+"px)";
});
let img_mouse_move = (Box, class_name) => {
$(Box).find("a,.jom_picGallery,.jom_navButton").hover(function() {
cursor.addClass("saf-on saf-hover");
}, function() {
cursor.removeClass("saf-on saf-hover");
});
}
img_mouse_move(".min", ".jom_cursorChange");
});
</script>
<style>
.saf-cursor {height: 10px;width: 10px;border-radius: 50%;background-color: #333;position: fixed;left: -5px;top: -5px;z-index: 99999996;pointer-events: none !important;mix-blend-mode: difference;}
.saf-cursor:before {content: "";position: absolute;display: block;border-radius: 50%;width: 40px;height: 40px;left: 50%;top: 50%;transform: translate(-50%,-50%);color: #fff;font-size: 0.6rem;line-height: 1.6;transition: all 0.5s;opacity: 0;text-align: center;}
.saf-cursor.saf-on:before {content: "Click";opacity: 1;}
.saf-cursor .saf-wrapper {animation: cn-rotate 5s linear infinite;position: absolute;width: 50px;height: 50px;border-radius: 50%;top: 50%;left: 50%;transform: translate(-50%,-50%);pointer-events: none !important;mix-blend-mode: difference;transition: 1s;background: #333;transition: all 0.8s;}
.saf-cursor.saf-on .saf-wrapper {width: 100px;height: 100px;transform: translate(-50%,-50%);}
.saf-cursor .saf-wrapper:before {content: "";display: block;width: 100%;height: 100%;border-radius: 50%;left: 0;top: 0;transform: scale(1.1);border: 1px #333 dashed;}
@keyframes cn-rotate {
0% {transform: translate(-50%,-50%) rotate(0deg)}
100% {transform: translate(-50%,-50%) rotate(360deg)}
}
</style>

收起阅读 »

简单吐个槽 用个unicloud 是真心累 - 慎重使用新功能啊

无障碍

1、开始用 unicloud ,一开始就各种出错。先是登录 一直报错,结果是uni-id-co这个对象,非要用 uni-id-pages创建的。。。自己直接复制上传就一直错

2、好吧就用 uni-id-pages 创建的,结果吧 ,uni-id-users.schema.json 这玩意儿 还有几个 一直标红,说冲突。区别就在于 一个 uni-id-users.schema.json 后面有 [uni-id-pages:unimodule]的标记,一个没有。。。不知道干嘛的 下载下来的schema不带这标记。。

3、然后,现在获取用户信息,用 databaseForJQL 在云对象中获取,就一直报错 :权限校验未通过,加了
"permission": {
"create": "auth.uid != null",
"delete": "doc.user_id == auth.uid",
"read": true,
"update": "doc.user_id == auth.uid"
}
也无效 —— 然而 直接用 db 不不用 jql 的方式 是可以获取的……

这一天到晚开发根本不是在开发,是在跟莫名其妙的情况作斗争

2023-05-10 00:24:45 补充
经过提醒,我悟了! 我把库删除了,重新用 uni-id-pages 创建了一次 OK了…… 随缘摸鱼开发 不是专门做这个 时间比较久 别吐槽……

继续阅读 »

1、开始用 unicloud ,一开始就各种出错。先是登录 一直报错,结果是uni-id-co这个对象,非要用 uni-id-pages创建的。。。自己直接复制上传就一直错

2、好吧就用 uni-id-pages 创建的,结果吧 ,uni-id-users.schema.json 这玩意儿 还有几个 一直标红,说冲突。区别就在于 一个 uni-id-users.schema.json 后面有 [uni-id-pages:unimodule]的标记,一个没有。。。不知道干嘛的 下载下来的schema不带这标记。。

3、然后,现在获取用户信息,用 databaseForJQL 在云对象中获取,就一直报错 :权限校验未通过,加了
"permission": {
"create": "auth.uid != null",
"delete": "doc.user_id == auth.uid",
"read": true,
"update": "doc.user_id == auth.uid"
}
也无效 —— 然而 直接用 db 不不用 jql 的方式 是可以获取的……

这一天到晚开发根本不是在开发,是在跟莫名其妙的情况作斗争

2023-05-10 00:24:45 补充
经过提醒,我悟了! 我把库删除了,重新用 uni-id-pages 创建了一次 OK了…… 随缘摸鱼开发 不是专门做这个 时间比较久 别吐槽……

收起阅读 »

uniapp用一次骂一次,骂完继续用,下次再来骂

微信小程序 uniapp插件 uni_im uniapp

这两天写代码,很烦
为了快速快发,用uniapp这个小可爱,虽然之前的经验告诉我这货有坑,但为了降低原始小程序的开发和学习周期还是勇敢面对了

使用uniIm时,为了节省时间使用了其内置组件,发现以下问题:

audioContext.url = "..." 赋值时内部代码报错,无法播放音频,百度无解,官方没有找到解决办法

解决办法:

import { isProxy, toRaw } from "vue";  

// [修复]不能直接使用uniIm.audioContext,proxy化后audioContext.url=xxx执行错误,需要获取原始对象  
const audioContext = isProxy(uniIm.audioContext) ? toRaw(uniIm.audioContext) : uniIm.audioContext;  

// 原版错误代码  
const audioContext = uniIm.audioContext;

调试发现是音频上下文UX对象被Proxy化后内部set反射不兼容导致,只好利用vue的toRaw获取原始对象得以解决
不知道那么多年为什么微信小程序他都整不明白,还能做啥

再补充:

官方插件的源码中对事件的处理,实在粗枝大叶有头没尾,on之后不知道off
可以使用$nextTick解决时却使用setTimeout这种初学者操作,虽然实现效果看似没啥区别,甚至setTimeout(..., 0),代码洁癖这看着很难受,对这样的团队也很失望,这能做好框架吗...
免费的东西背后的服务也不全免费,花了钱来骂几句不过分吧

继续阅读 »

这两天写代码,很烦
为了快速快发,用uniapp这个小可爱,虽然之前的经验告诉我这货有坑,但为了降低原始小程序的开发和学习周期还是勇敢面对了

使用uniIm时,为了节省时间使用了其内置组件,发现以下问题:

audioContext.url = "..." 赋值时内部代码报错,无法播放音频,百度无解,官方没有找到解决办法

解决办法:

import { isProxy, toRaw } from "vue";  

// [修复]不能直接使用uniIm.audioContext,proxy化后audioContext.url=xxx执行错误,需要获取原始对象  
const audioContext = isProxy(uniIm.audioContext) ? toRaw(uniIm.audioContext) : uniIm.audioContext;  

// 原版错误代码  
const audioContext = uniIm.audioContext;

调试发现是音频上下文UX对象被Proxy化后内部set反射不兼容导致,只好利用vue的toRaw获取原始对象得以解决
不知道那么多年为什么微信小程序他都整不明白,还能做啥

再补充:

官方插件的源码中对事件的处理,实在粗枝大叶有头没尾,on之后不知道off
可以使用$nextTick解决时却使用setTimeout这种初学者操作,虽然实现效果看似没啥区别,甚至setTimeout(..., 0),代码洁癖这看着很难受,对这样的团队也很失望,这能做好框架吗...
免费的东西背后的服务也不全免费,花了钱来骂几句不过分吧

收起阅读 »

推出了全新的“iOS证书自动化服务”,欢迎体验!

iOS证书

前言:我们为开发者推出了全新的“iOS证书自动化服务”!现在,您可以快速上传组织/个人苹果账号,并在线生成正式证书和测试证书。无需使用MAC OS系统,不再需要繁琐的手动证书制作流程;而且不必安装任何软件,只需在网页上即可方便的绑定测试设备UDID。这项服务能够帮助开发者轻松打包和快速测试应用,提供更全面的一站式流程服务。赶快来试试吧!

如果您是一名iOS开发者,那么我们的“iOS证书自动化”服务一定能够为您带来很多的便利和帮助。我们的服务致力于解决开发者在打包和测试应用过程中的繁琐问题,实现快速在线生成正式证书和测试证书,无需MAC OS系统,告别繁琐的手动证书制作流程。

同时,我们还提供控制台便捷绑定测试设备UDID功能,助力开发者便捷打包和快速测试应用。在使用我们的服务过程中,您可以更加关注产品创新和商业价值的实现。欢迎加入我们,享受更加便捷、高效的“iOS证书自动化”一站式服务!

继续阅读 »

前言:我们为开发者推出了全新的“iOS证书自动化服务”!现在,您可以快速上传组织/个人苹果账号,并在线生成正式证书和测试证书。无需使用MAC OS系统,不再需要繁琐的手动证书制作流程;而且不必安装任何软件,只需在网页上即可方便的绑定测试设备UDID。这项服务能够帮助开发者轻松打包和快速测试应用,提供更全面的一站式流程服务。赶快来试试吧!

如果您是一名iOS开发者,那么我们的“iOS证书自动化”服务一定能够为您带来很多的便利和帮助。我们的服务致力于解决开发者在打包和测试应用过程中的繁琐问题,实现快速在线生成正式证书和测试证书,无需MAC OS系统,告别繁琐的手动证书制作流程。

同时,我们还提供控制台便捷绑定测试设备UDID功能,助力开发者便捷打包和快速测试应用。在使用我们的服务过程中,您可以更加关注产品创新和商业价值的实现。欢迎加入我们,享受更加便捷、高效的“iOS证书自动化”一站式服务!

收起阅读 »

HBuilderX插件:命令面板

折叠面板 HBuilderX

命令面板

包含绝大多数HBuilderX命令菜单

插件市场下载地址:https://ext.dcloud.net.cn/plugin?id=2294

示例1: HBuilderX命令菜单

配置快捷键

点击菜单【工具】【自定义快捷键】,输入如下内容

{  
    "key":"",  
    "command": "commandPalette.main"  
}
继续阅读 »

命令面板

包含绝大多数HBuilderX命令菜单

插件市场下载地址:https://ext.dcloud.net.cn/plugin?id=2294

示例1: HBuilderX命令菜单

配置快捷键

点击菜单【工具】【自定义快捷键】,输入如下内容

{  
    "key":"",  
    "command": "commandPalette.main"  
}
收起阅读 »

求房产类小程序

分享源码 购买源码版 源码分享 源码

有偿求一个房产类小程序

有偿求一个房产类小程序

DCloud 开发者修改手机号码

修改手机号码

开发者修改手机号码流程
> 注:每个用户30天内只能修改1次手机号,365天内最多修改3次手机号。

1、登录开发者中心,点击左侧“个人中心”-“账户信息”,在手机号码处点击修改,如下图:

2、获取手机验证码

3、如果手机号不能接收验证,可使用邮箱验证。

4、原手机号或邮箱验证成功后,输入新的手机号码,并获得验证码

5、修改完成

继续阅读 »

开发者修改手机号码流程
> 注:每个用户30天内只能修改1次手机号,365天内最多修改3次手机号。

1、登录开发者中心,点击左侧“个人中心”-“账户信息”,在手机号码处点击修改,如下图:

2、获取手机验证码

3、如果手机号不能接收验证,可使用邮箱验证。

4、原手机号或邮箱验证成功后,输入新的手机号码,并获得验证码

5、修改完成

收起阅读 »

DCloud 开发者登录账号修改

账号修改

登录账号修改流程

1、登录开发者中心,点击左侧“个人中心”-“账户信息”,在注册邮箱处点击修改,如下图:

2、通过原账号接收验证码,或在已绑定手机时,可以使用手机号验证。

3、原账号验证成功,输入新账号,以及新账号验证码。

4、修改完成

继续阅读 »

登录账号修改流程

1、登录开发者中心,点击左侧“个人中心”-“账户信息”,在注册邮箱处点击修改,如下图:

2、通过原账号接收验证码,或在已绑定手机时,可以使用手机号验证。

3、原账号验证成功,输入新账号,以及新账号验证码。

4、修改完成

收起阅读 »

用HBuilderX做简易扫一扫APP(数据放免费的unicloud上)

视频教程

超简单的,今天看uni-app的官方教程试着作了一下,用他的shema2code来生成增删查改代码,商品表: 名称和条码,生成增删查改页面,在手机上添加,然后加一个“扫一扫”按钮,点了调用内置的扫码插件打开手机的摄像头扫码,然后跳转到相应的商品页面,后面又加上了上传图片的。。。很好玩。。。
刚出来无业宅家啃老中。。学点东西玩玩。。。

视频地址:
https://www.bilibili.com/video/BV18X4y127zA/?vd_source=d2489288561fc6f77fce2e2ee18cfcfe

无快进,代码一行一行的撸。。除了复制粘贴。。。

继续阅读 »

超简单的,今天看uni-app的官方教程试着作了一下,用他的shema2code来生成增删查改代码,商品表: 名称和条码,生成增删查改页面,在手机上添加,然后加一个“扫一扫”按钮,点了调用内置的扫码插件打开手机的摄像头扫码,然后跳转到相应的商品页面,后面又加上了上传图片的。。。很好玩。。。
刚出来无业宅家啃老中。。学点东西玩玩。。。

视频地址:
https://www.bilibili.com/video/BV18X4y127zA/?vd_source=d2489288561fc6f77fce2e2ee18cfcfe

无快进,代码一行一行的撸。。除了复制粘贴。。。

收起阅读 »