HBuilderX

HBuilderX

极客开发工具
uni-app

uni-app

开发一次,多端覆盖
uniCloud

uniCloud

云开发平台
HTML5+

HTML5+

增强HTML5的功能体验
MUI

MUI

上万Star的前端框架

uniapp 体积优化秘技

体积优化

uniapp 体积优化秘技

这个方法很简单很有效,只有一句话「不要在 main.js 中加任何一行代码」

下面是我的一个示例

示例

之前这个 main.ts 中还有很多其他杂七杂八的东西,预览的时候体积是 2321KB。都没有办法预览

全部移动到其他地方之后体积降到了 2138KB 虽然还是没有办法预览但体积确实减小了。

编译之后的体积也会有大幅缩小。

原理

uni-app 会将 main.js 中的代码 copy 一份到所有的 生成后的 js 文件中,这是没有必要的,我们将这些代码移动到其他文件然后被打包到 vendor.js 就可以避免这个问题。

即便你 main.js 中之前只有 30 行其他代码,但使用这个方法之后也会得到可观的体积优化。

这个方法我在两个项目中使用到了,即使编译后体积也有 100KB 以上的优化,当然这个优化的大小取决于你 main.js 中的代码数。如果你的项目中 main.js 中有很多代码的话这个方法值得一试!

by 崮生 from 崮生 • 一些随笔
本文欢迎分享与聚合,全文转载未经授权( 联系我)不许可 。

继续阅读 »

uniapp 体积优化秘技

这个方法很简单很有效,只有一句话「不要在 main.js 中加任何一行代码」

下面是我的一个示例

示例

之前这个 main.ts 中还有很多其他杂七杂八的东西,预览的时候体积是 2321KB。都没有办法预览

全部移动到其他地方之后体积降到了 2138KB 虽然还是没有办法预览但体积确实减小了。

编译之后的体积也会有大幅缩小。

原理

uni-app 会将 main.js 中的代码 copy 一份到所有的 生成后的 js 文件中,这是没有必要的,我们将这些代码移动到其他文件然后被打包到 vendor.js 就可以避免这个问题。

即便你 main.js 中之前只有 30 行其他代码,但使用这个方法之后也会得到可观的体积优化。

这个方法我在两个项目中使用到了,即使编译后体积也有 100KB 以上的优化,当然这个优化的大小取决于你 main.js 中的代码数。如果你的项目中 main.js 中有很多代码的话这个方法值得一试!

by 崮生 from 崮生 • 一些随笔
本文欢迎分享与聚合,全文转载未经授权( 联系我)不许可 。

收起阅读 »

uniapp运行到微信开发者工具出现 [ WXSS 文件编译错误] 的解决办法

问题描述:

uniapp运行到微信开发者工具,在控制台出现:[ WXSS 文件编译错误]提示,如图:

控制台点击main.wxss文件发现在uniapp中定义的uni.scss变量保持原样,没有经过编译,如图:

问题出现的原因:

经过查找发现,是由于我在app.vue中手动引入了uni.scss,并未在style标签上声明scss模式,所以uni.scss内定义的css变量就未经编译,被当做普通css进行引入,编译到小程序后,wxss不识别所以报错,如图:

解决办法:

1.不要在app.vue或其它文件内手动引用uni.scss,默认无需引用,就可以直接在其它文件的<style lang="scss">内调用里面的css变量
2.如果手动引用了,记得在style标签上声明为scss模式,如:

<style lang="scss">  
      /*但凡用到scss方式设置css的地方都要在标签上显示声明*/  
      ...  
</style>

uni.scss官方说明文档:https://uniapp.dcloud.io/collocation/uni-scss?id=collocation

另补充:奇怪的是编译到APP平台不报错,按道理官方应该也需要处理一下遇到这种引用scss,未声明style模式的时候,给一个报错提示

继续阅读 »

问题描述:

uniapp运行到微信开发者工具,在控制台出现:[ WXSS 文件编译错误]提示,如图:

控制台点击main.wxss文件发现在uniapp中定义的uni.scss变量保持原样,没有经过编译,如图:

问题出现的原因:

经过查找发现,是由于我在app.vue中手动引入了uni.scss,并未在style标签上声明scss模式,所以uni.scss内定义的css变量就未经编译,被当做普通css进行引入,编译到小程序后,wxss不识别所以报错,如图:

解决办法:

1.不要在app.vue或其它文件内手动引用uni.scss,默认无需引用,就可以直接在其它文件的<style lang="scss">内调用里面的css变量
2.如果手动引用了,记得在style标签上声明为scss模式,如:

<style lang="scss">  
      /*但凡用到scss方式设置css的地方都要在标签上显示声明*/  
      ...  
</style>

uni.scss官方说明文档:https://uniapp.dcloud.io/collocation/uni-scss?id=collocation

另补充:奇怪的是编译到APP平台不报错,按道理官方应该也需要处理一下遇到这种引用scss,未声明style模式的时候,给一个报错提示

收起阅读 »

关于mui 框架的上拉加载失效的问题

 在使用上拉加载,下拉刷新的组件的时候,我一直都是使用mui('#').pullRefresh().endPulldownToRefresh()和 mui('#lifecircle_refresh').pullRefresh().endPullupToRefresh();来进行停止刷新和加载。 但是在今天的项目中,我在第一次进入APP的时候,可以下拉刷新,然后上拉加载,等到把数据加载完了之后,尾部提示"没有更多数据了“,之后我在进行下拉刷新,出来一组数据,之后,再上拉加载,尾部直接显示,”没有更多数据了"  就是说,上拉加载失效了,因为根本没有加载函数。后来查了资料和官网,得知,在第一次把数据加载完之后,框架自动设置禁止上拉加载。需要用mui('#lifecircle_refresh').pullRefresh().refresh(true);,来启动上拉加载。就可以了  

继续阅读 »
 在使用上拉加载,下拉刷新的组件的时候,我一直都是使用mui('#').pullRefresh().endPulldownToRefresh()和 mui('#lifecircle_refresh').pullRefresh().endPullupToRefresh();来进行停止刷新和加载。 但是在今天的项目中,我在第一次进入APP的时候,可以下拉刷新,然后上拉加载,等到把数据加载完了之后,尾部提示"没有更多数据了“,之后我在进行下拉刷新,出来一组数据,之后,再上拉加载,尾部直接显示,”没有更多数据了"  就是说,上拉加载失效了,因为根本没有加载函数。后来查了资料和官网,得知,在第一次把数据加载完之后,框架自动设置禁止上拉加载。需要用mui('#lifecircle_refresh').pullRefresh().refresh(true);,来启动上拉加载。就可以了  

收起阅读 »

承接H5、小程序、、PC端网站、后台系统等外包

pc 小程序 公众号 h5 外包

承接H5、小程序、PC端网站、后台系统等外包,主要技术栈为vue、uni-app,有意请加微信:1819080149(前端,有单子的服务端可找我合作,或者完全丢给我,我这也有一个小团队,非诚勿扰、谢谢)

承接H5、小程序、PC端网站、后台系统等外包,主要技术栈为vue、uni-app,有意请加微信:1819080149(前端,有单子的服务端可找我合作,或者完全丢给我,我这也有一个小团队,非诚勿扰、谢谢)

关于input在 PDA环境中扫描,无法清空input的情况

广播 input 扫描

开发PDA实现扫描录入,由于uniapp不支持原生input的keydown事件,所以无法判断回车键。

这边使用的是 @confirm事件,实现回车提交,但是测试中遇到了问题,每扫描几次就会间隔性出现 input未被清空的情况,就会导致和下次扫描数据一起提交。实际测试发现如果使用软键盘提交回车没有出现这种情况,怀疑可能扫描录入的数据填充的比较快。因为这个问题研究了很多天,并在社区搜索相关解决方案,目前碰到的最妥善的方法可能就是监听广播,直接原生获取扫描数据。
但是根据大家的描述来看,广播模式似乎只支持 android 8.0 以上的设备,而我测试的PDA版本为5.1,在设置中也确实没有找到相关设置,如果使用该方式可能需要更换设备,所以广播应为最后的处理手段。实际上采集录入的最佳方式还是直接扫描到录入框,但是受到框架的一定限制让我感到十分无奈。

不过就在刚才我突然灵机一动,既然input无法更新视图,清空录入框中的数据,那我为什么不使用 v-if 将他们重新渲染呢?最终经过测试,完美实现预期效。

     <view v-if="bool">  
        <input class="input" @confirm="confirm1" v-model="value" key="1" auto-focus="autofocus" />  
    </view>  
    <view v-else>  
        <input class="input" @confirm="confirm1" v-model="value" key="2" auto-focus="autofocus" />  
    </view>  

当然目前只是通过的测试,无法保证在后面实际应用中会导致什么异常,先将方法分享出来,如果有异常我再继续在帖子下面回复,如果大家有更好的方式也请分享给我一下,十分感谢!

附件我上传了测试的视频

继续阅读 »

开发PDA实现扫描录入,由于uniapp不支持原生input的keydown事件,所以无法判断回车键。

这边使用的是 @confirm事件,实现回车提交,但是测试中遇到了问题,每扫描几次就会间隔性出现 input未被清空的情况,就会导致和下次扫描数据一起提交。实际测试发现如果使用软键盘提交回车没有出现这种情况,怀疑可能扫描录入的数据填充的比较快。因为这个问题研究了很多天,并在社区搜索相关解决方案,目前碰到的最妥善的方法可能就是监听广播,直接原生获取扫描数据。
但是根据大家的描述来看,广播模式似乎只支持 android 8.0 以上的设备,而我测试的PDA版本为5.1,在设置中也确实没有找到相关设置,如果使用该方式可能需要更换设备,所以广播应为最后的处理手段。实际上采集录入的最佳方式还是直接扫描到录入框,但是受到框架的一定限制让我感到十分无奈。

不过就在刚才我突然灵机一动,既然input无法更新视图,清空录入框中的数据,那我为什么不使用 v-if 将他们重新渲染呢?最终经过测试,完美实现预期效。

     <view v-if="bool">  
        <input class="input" @confirm="confirm1" v-model="value" key="1" auto-focus="autofocus" />  
    </view>  
    <view v-else>  
        <input class="input" @confirm="confirm1" v-model="value" key="2" auto-focus="autofocus" />  
    </view>  

当然目前只是通过的测试,无法保证在后面实际应用中会导致什么异常,先将方法分享出来,如果有异常我再继续在帖子下面回复,如果大家有更好的方式也请分享给我一下,十分感谢!

附件我上传了测试的视频

收起阅读 »

雨滴科技蓝牙打印Demo

为方便用户使用H5开发便携式蓝牙打印机的安卓端运用,我司提供h5 demo,以便大家共享。

为方便用户使用H5开发便携式蓝牙打印机的安卓端运用,我司提供h5 demo,以便大家共享。

雨滴科技PDA条码H5 Demo

条码

为方便使用H5开发的用户能够快速的开发安卓app,并且调用条码扫描服务,在此写了一个H5的demo,以便大家共享。

为方便使用H5开发的用户能够快速的开发安卓app,并且调用条码扫描服务,在此写了一个H5的demo,以便大家共享。

十大绝招计划走势图+406059

Mac10.11

父亲听着母亲的唠叨,面色沉重地像是在责怪自己,始终缄默着没有开口,他怕一开口,在母亲听来都像是反驳。

父亲听着母亲的唠叨,面色沉重地像是在责怪自己,始终缄默着没有开口,他怕一开口,在母亲听来都像是反驳。

《最强讲解》什么时候砍龙合适|必看+406059

Mac10.11

父亲听着母亲的唠叨,面色沉重地像是在责怪自己,始终缄默着没有开口,他怕一开口,在母亲听来都像是反驳。

父亲听着母亲的唠叨,面色沉重地像是在责怪自己,始终缄默着没有开口,他怕一开口,在母亲听来都像是反驳。

讲解《一分看走势图技巧》小窍门+406059

父亲听着母亲的唠叨,面色沉重地像是在责怪自己,始终缄默着没有开口,他怕一开口,在母亲听来都像是反驳。

父亲听着母亲的唠叨,面色沉重地像是在责怪自己,始终缄默着没有开口,他怕一开口,在母亲听来都像是反驳。

域名备案一些经验分享

在中华人民共和国境内提供互联网信息服务,应当依法履行ICP备案手续,而相应的备案服务商是非常多的,今天就说下备案的一些相关经验,希望能为大家节约宝贵时间,更多的精力去写bug!
A:有云服务器,且云服务符合备案标准,剩余时间大于3个月以上
这种情况下直接去阿里云或者腾讯云,申请备案,按照APP提示操作即可,过程非常简单,填完信息以后,等待服务商的工作人员来和你电话联系,按照工作人员说的问题修改所填写信息,成功后会上报当局备案信息,你在app或者小程序端都可以查看到当前备案进度。
当局会下发一段短信验证码至联系人手机号,拿到验证码后,去国家网站验证即可,短信上附有网站地址,填写验证码后,所有流程就算完成了,一般7-15个工作日内,当局会下发你的备案主体信息。
B:网页托管,没有自购云服务器,使用第三方备案号进行备案
1,阿里云和腾讯云都提供备案授权码(阿里叫服务号),这里以腾讯云为例,说明下如何生成备案授权码这个东西。

a.登录腾讯云以后,点击账户信息

b.复制下这个账号ID,后面需要用的

这里是要谁授权给谁用就写谁的账号ID,账号ID的获取方式就是第一步里面的。腾讯云,阿里云或者其他第三方服务商的授权码,生成过程也大致如下。
有了备案号之后,就可以去相关服务上提交资料申报当局了,这里就不赘述了。
由于各个服务商的备案授权码不是一致的,如果你使用购买来的备案授权码,请一定问清楚,到底是去哪个服务商申报备案。对于朋友有云服务器在服务商的情况下,大家可以让朋友帮你生成备案授权码让你自行使用,也可以节约100块左右的支出。
由于服务商众多,这里只写了以腾讯云为服务商的分享,阿里云的经验分享,大家可以查看到文档,希望能帮到各位朋友

继续阅读 »

在中华人民共和国境内提供互联网信息服务,应当依法履行ICP备案手续,而相应的备案服务商是非常多的,今天就说下备案的一些相关经验,希望能为大家节约宝贵时间,更多的精力去写bug!
A:有云服务器,且云服务符合备案标准,剩余时间大于3个月以上
这种情况下直接去阿里云或者腾讯云,申请备案,按照APP提示操作即可,过程非常简单,填完信息以后,等待服务商的工作人员来和你电话联系,按照工作人员说的问题修改所填写信息,成功后会上报当局备案信息,你在app或者小程序端都可以查看到当前备案进度。
当局会下发一段短信验证码至联系人手机号,拿到验证码后,去国家网站验证即可,短信上附有网站地址,填写验证码后,所有流程就算完成了,一般7-15个工作日内,当局会下发你的备案主体信息。
B:网页托管,没有自购云服务器,使用第三方备案号进行备案
1,阿里云和腾讯云都提供备案授权码(阿里叫服务号),这里以腾讯云为例,说明下如何生成备案授权码这个东西。

a.登录腾讯云以后,点击账户信息

b.复制下这个账号ID,后面需要用的

这里是要谁授权给谁用就写谁的账号ID,账号ID的获取方式就是第一步里面的。腾讯云,阿里云或者其他第三方服务商的授权码,生成过程也大致如下。
有了备案号之后,就可以去相关服务上提交资料申报当局了,这里就不赘述了。
由于各个服务商的备案授权码不是一致的,如果你使用购买来的备案授权码,请一定问清楚,到底是去哪个服务商申报备案。对于朋友有云服务器在服务商的情况下,大家可以让朋友帮你生成备案授权码让你自行使用,也可以节约100块左右的支出。
由于服务商众多,这里只写了以腾讯云为服务商的分享,阿里云的经验分享,大家可以查看到文档,希望能帮到各位朋友

收起阅读 »

window uni-app 自助打包流程,5分钟搞定

【abd命令大全-测试连接手机】
https://blog.csdn.net/qq_39969226/article/details/87897863

【Android平台签名自助生成】
https://ask.dcloud.net.cn/article/35777

【Java SE 15 - Downloads】
https://www.oracle.com/java/technologies/javase-jdk15-downloads.html

【安装JAVA SE之后,生成签名】
keytool -genkey -alias xxxx -keyalg RSA -keysize 2048 -validity 36500 -keystore xxxxxx2

Enter keystore password: //输入证书文件密码,输入完成回车
Re-enter new password: //再次输入证书文件密码,输入完成回车
//输入名字和姓氏,输入完成回车
What is your first and last name?

What is the name of your organizational unit?

What is the name of your organization?

What is the name of your City or Locality?

What is the name of your State or Province?

What is the two-letter country code for this unit?

Is CN=XX, OU=XX, O=XX, L=XX, ST=XX, C=XX correct?

【把签名填入HBuilder 打包】
https://service.dcloud.net.cn/build/download/1928b700-2ed1-11eb-9862-9398f34f1344

备注:abd 和 keytool 都要加环境变量

继续阅读 »

【abd命令大全-测试连接手机】
https://blog.csdn.net/qq_39969226/article/details/87897863

【Android平台签名自助生成】
https://ask.dcloud.net.cn/article/35777

【Java SE 15 - Downloads】
https://www.oracle.com/java/technologies/javase-jdk15-downloads.html

【安装JAVA SE之后,生成签名】
keytool -genkey -alias xxxx -keyalg RSA -keysize 2048 -validity 36500 -keystore xxxxxx2

Enter keystore password: //输入证书文件密码,输入完成回车
Re-enter new password: //再次输入证书文件密码,输入完成回车
//输入名字和姓氏,输入完成回车
What is your first and last name?

What is the name of your organizational unit?

What is the name of your organization?

What is the name of your City or Locality?

What is the name of your State or Province?

What is the two-letter country code for this unit?

Is CN=XX, OU=XX, O=XX, L=XX, ST=XX, C=XX correct?

【把签名填入HBuilder 打包】
https://service.dcloud.net.cn/build/download/1928b700-2ed1-11eb-9862-9398f34f1344

备注:abd 和 keytool 都要加环境变量

收起阅读 »