HBuilderX

HBuilderX

极客开发工具
uni-app

uni-app

开发一次,多端覆盖
uniCloud

uniCloud

云开发平台
HTML5+

HTML5+

增强HTML5的功能体验
MUI

MUI

上万Star的前端框架

恳请官方大大仔细打磨一下uni.chooseImage、uni.previewImage 函数

图片压缩

首先声明,这不算BUG,我也没有能力及精力提BUG。
三无业余爱好者,以前用uniapp写了个微信小程序,so easy,用了3年了,非常好用及稳定,虽然客户不多,但都是死忠粉。
前几天考虑到有些客户说不喜欢用微信,心想就把他封装成app吧。这个框架就是好。
刚好前两天下雨,稍稍改好,封装成功。
结果在使用中却发现了问题,就是传上去的图片很喜欢旋转。
开始排查问题,开始怀疑是uni.chooseImage的问题,但仔细对照官方例子,没发现问题。不过我后来发现了,我自己后台对接的是php,里面也用到了压缩图片。把压缩图片的代码注释了就好了。这样表面上看起来手机上上传的图片是正的,因为我还有电脑桌面端,但桌面端看那个图片还是旋转的。
哎呀,搞晕了,长话短说吧,uni.chooseImage、uni.previewImage 配合,如果服务器图片没压缩的话,表面上手机上看来是都是正的,其实云盘图片还是旋转的。
如果图片服务器压缩了,刚才手机上显示的是直接旋转的,云图也是旋转的。
把未压缩的通过原图下载下来,图片本身比原手机图片还要大,1.2M的竟然干到了3.4M。
还有,通过uni.chooseImage回调的图片,预览时大多都是一个黑框框,很不美观。黑框框里一个小图片。
感谢官方大大做出这么好的框架,但能优化的更好就好了。

我的手机是红米K30的,经常造成旋转的图片是平时照的全屏图片。
我个人认为是uni.chooseImage的压缩算法还值得优化。

继续阅读 »

首先声明,这不算BUG,我也没有能力及精力提BUG。
三无业余爱好者,以前用uniapp写了个微信小程序,so easy,用了3年了,非常好用及稳定,虽然客户不多,但都是死忠粉。
前几天考虑到有些客户说不喜欢用微信,心想就把他封装成app吧。这个框架就是好。
刚好前两天下雨,稍稍改好,封装成功。
结果在使用中却发现了问题,就是传上去的图片很喜欢旋转。
开始排查问题,开始怀疑是uni.chooseImage的问题,但仔细对照官方例子,没发现问题。不过我后来发现了,我自己后台对接的是php,里面也用到了压缩图片。把压缩图片的代码注释了就好了。这样表面上看起来手机上上传的图片是正的,因为我还有电脑桌面端,但桌面端看那个图片还是旋转的。
哎呀,搞晕了,长话短说吧,uni.chooseImage、uni.previewImage 配合,如果服务器图片没压缩的话,表面上手机上看来是都是正的,其实云盘图片还是旋转的。
如果图片服务器压缩了,刚才手机上显示的是直接旋转的,云图也是旋转的。
把未压缩的通过原图下载下来,图片本身比原手机图片还要大,1.2M的竟然干到了3.4M。
还有,通过uni.chooseImage回调的图片,预览时大多都是一个黑框框,很不美观。黑框框里一个小图片。
感谢官方大大做出这么好的框架,但能优化的更好就好了。

我的手机是红米K30的,经常造成旋转的图片是平时照的全屏图片。
我个人认为是uni.chooseImage的压缩算法还值得优化。

收起阅读 »

超简单!Android Studio 查看证书SHA1,MD5等信息

Android证书

下载 Android 离线SDK - 正式版
解压后,用 Android Studio 导入 HBuilder-Integrate-AS
具体操作如下图:

如果 Gradle 面板目录中没有 signingReport 文件,请按一下操作:
File -> Settings -> Experimental -> Only include test tasks in the Gradle task list generated during Gradle Sync【取消勾选】 保存
保存后记得要同步一下:File -> Settings -> Sync Project with Gradle Files

继续阅读 »

下载 Android 离线SDK - 正式版
解压后,用 Android Studio 导入 HBuilder-Integrate-AS
具体操作如下图:

如果 Gradle 面板目录中没有 signingReport 文件,请按一下操作:
File -> Settings -> Experimental -> Only include test tasks in the Gradle task list generated during Gradle Sync【取消勾选】 保存
保存后记得要同步一下:File -> Settings -> Sync Project with Gradle Files

收起阅读 »

越更新越难用,折磨的都想弃坑了,完全是看在vue语法的份上还在坚持

1、报错老是乱报行号
2、连续输入内容老是自作聪明的把数字变成选择。(比如我想输入颜色 #FF1166,当输入 #FF时如果有代码提示,这里再按1,就自动选择第一个,烦死了)
3、编译总是缺东少西的,最近更新了以后,改点东西小程序那边经常找不到,就不得不停止运行,重新启动项目。
4、在分包新建页面时,总是跑pages目录外面去,pages.josn的注册也是乱七八糟
5、代码跳转经常失效,我不得不像个傻子一样,按ctrl+f 去搜索方法名
…………
…………

继续阅读 »

1、报错老是乱报行号
2、连续输入内容老是自作聪明的把数字变成选择。(比如我想输入颜色 #FF1166,当输入 #FF时如果有代码提示,这里再按1,就自动选择第一个,烦死了)
3、编译总是缺东少西的,最近更新了以后,改点东西小程序那边经常找不到,就不得不停止运行,重新启动项目。
4、在分包新建页面时,总是跑pages目录外面去,pages.josn的注册也是乱七八糟
5、代码跳转经常失效,我不得不像个傻子一样,按ctrl+f 去搜索方法名
…………
…………

收起阅读 »

喜大普奔,nvue项目全局浮窗功能已实现,非原生插件方案,可实现贴边、跟手移动、全项目任意位置通过js显示、隐藏、销毁、创建

方法文档正在整理中,顺便谁能给我解决下我这个问题https://ask.dcloud.net.cn/question/164176

方法文档正在整理中,顺便谁能给我解决下我这个问题https://ask.dcloud.net.cn/question/164176

免费苹果ios在线签名工具

移动APP Apple证书 App打包 App云端打包 工具 签名 iOS证书 iOS打包

支持功能:
1.支持在线签名操作
2.支持修改ipa包的名字
3.支持修ipa包的bundle identifier
4.支持去锁ipa包多余动态库即时间锁
5.支持ipa免费分发下载
6.支持windows和mac平台环境

访问地址:
https://sign.ipasign.cc

继续阅读 »

支持功能:
1.支持在线签名操作
2.支持修改ipa包的名字
3.支持修ipa包的bundle identifier
4.支持去锁ipa包多余动态库即时间锁
5.支持ipa免费分发下载
6.支持windows和mac平台环境

访问地址:
https://sign.ipasign.cc

收起阅读 »

unicloud 云函数+云数据库+跨域设置 编写后端接口

api uniCloud

云数据库book表数据:
> [
{
"_id": "642a492fcec29b27678be375",
"author": "松鼠200",
"bookid": 4,
"des": "一个是叱咤仙路的风云上神.一个是废材资质修真菜鸟.当网游遭遇修真.还有什么是不可能的呢?昔日等级榜第一大神跌落云端.废柴医师掉进修真世界。小小菜鸟又该如何一步一个脚印.攀上这云海尽头.苍岚之巅?萌兽or美男?仙术or神通?丹药or法宝?修真菜鸟的逆袭日记从现在开始书写!即使大道无情.艰险丛生.萌妹子也要闯出一片天!",
"img": "/upload/book/4.jpg",
"name": "风起苍岚",
"status": "连载中",
"tag": "修真$热血$玄幻$",
"uptime": "2023/4/2"
}
]
云函数getbookdetail:
> 'use strict';
const db = uniCloud.database()
exports.main = async (event, context) => {
//event为客户端上传的参数
var bookid=parseInt(event.queryStringParameters.bookid)
if(!event.queryStringParameters.bookid){
var string='bookid不可为空'
}else{
const collection = db.collection('book')
var string =collection.where({bookid:bookid}).get()
}
const res=string
return res
//返回数据给客户端
};
返回的数据如下:
{
"affectedDocs":1,"data":
[
{
"_id":"642a492fcec29b27678be375",
"bookid":4,
"name":"风起苍岚",
"des":"一个是叱咤仙路的风云上神.一个是废材资质修真菜鸟.当网游遭遇修真.还有什么是不可能的呢?昔日等级榜第一大神跌落云端.废柴医师掉进修真世界。小小菜鸟又该如何一步一个脚印.攀上这云海尽头.苍岚之巅?萌兽or美男?仙术or神通?丹药or法宝?修真菜鸟的逆袭日记从现在开始书写!即使大道无情.艰险丛生.萌妹子也要闯出一片天!",
"img":"/upload/book/4.jpg",
"tag":"修真$热血$玄幻$",
"status":"连载中",
"uptime":"2023/4/2",
"author":"松鼠200"
}
]
}

继续阅读 »

云数据库book表数据:
> [
{
"_id": "642a492fcec29b27678be375",
"author": "松鼠200",
"bookid": 4,
"des": "一个是叱咤仙路的风云上神.一个是废材资质修真菜鸟.当网游遭遇修真.还有什么是不可能的呢?昔日等级榜第一大神跌落云端.废柴医师掉进修真世界。小小菜鸟又该如何一步一个脚印.攀上这云海尽头.苍岚之巅?萌兽or美男?仙术or神通?丹药or法宝?修真菜鸟的逆袭日记从现在开始书写!即使大道无情.艰险丛生.萌妹子也要闯出一片天!",
"img": "/upload/book/4.jpg",
"name": "风起苍岚",
"status": "连载中",
"tag": "修真$热血$玄幻$",
"uptime": "2023/4/2"
}
]
云函数getbookdetail:
> 'use strict';
const db = uniCloud.database()
exports.main = async (event, context) => {
//event为客户端上传的参数
var bookid=parseInt(event.queryStringParameters.bookid)
if(!event.queryStringParameters.bookid){
var string='bookid不可为空'
}else{
const collection = db.collection('book')
var string =collection.where({bookid:bookid}).get()
}
const res=string
return res
//返回数据给客户端
};
返回的数据如下:
{
"affectedDocs":1,"data":
[
{
"_id":"642a492fcec29b27678be375",
"bookid":4,
"name":"风起苍岚",
"des":"一个是叱咤仙路的风云上神.一个是废材资质修真菜鸟.当网游遭遇修真.还有什么是不可能的呢?昔日等级榜第一大神跌落云端.废柴医师掉进修真世界。小小菜鸟又该如何一步一个脚印.攀上这云海尽头.苍岚之巅?萌兽or美男?仙术or神通?丹药or法宝?修真菜鸟的逆袭日记从现在开始书写!即使大道无情.艰险丛生.萌妹子也要闯出一片天!",
"img":"/upload/book/4.jpg",
"tag":"修真$热血$玄幻$",
"status":"连载中",
"uptime":"2023/4/2",
"author":"松鼠200"
}
]
}

收起阅读 »

牛蛙,某平台,能把我简书文章直接强制封锁?就因为说了实话?

首先本人于22年4月份发布了一篇关于平台的使用建议文章,历时一年由于点击量过高,排名在百度搜索前3名,从而被平台官方盯上了,原因是我写的文章有针对平台的使用的问题进行了说明和建议,说白了就是官方看不惯我说他们一点不好,首先文章是很客观的,也是包含了本人使用的亲身经历和实际发生的问题,为此于2023年3月31日,平台官方人员私自查用了我的私人手机号,并打电话沟通之前我发布的问题(之前2年前发布的问题都没有这么主动),电话语气十分不屑,官方说是为了沟通问题,但是我用了两年多了,没见过一次打电话,直到官方最后说出了真实用意,让我删除某书上的文章(就是前面提到的建议文章), 我也是没多理会没有时间和这个平台纠缠,隔日我看到平台我发布的问题官方人员进行了回复,目的很明确也是让我删除帖子,然后当天我的文章被百度关闭了推荐,4月4日简书封锁了我的文章,文章阅读量不多2700左右,受到官方重视我也是很荣幸。

情况就是这样,令我吃惊的是平台的营销和公关手段,比他们的平台做的要好不知道几倍,本来我看百度推广下了就下了,无所谓但是你们有点太欺负人了,文章直接给我封锁?怎么我说的某些点,戳到他们的痛楚了?亲身经历你和我说我发的东西不属实,既然这样我们客户很多,平台的客户也有很多,况且我不忙的时候会照顾下他们。

我可能干不过一个《大平台》,但是我有我坚持的底线和原则,用户提出问题应该去解决找方案,而不是这样做,我很少黑任何东西和人,但是平台确实过分,以后我也不会黑了,我会一五一十的说实话,把这些经历分享给大家,好看清某些平台的嘴脸。

声明 本帖子不涉及任何dcloud官方的东西,文章所指为其他平台。

继续阅读 »

首先本人于22年4月份发布了一篇关于平台的使用建议文章,历时一年由于点击量过高,排名在百度搜索前3名,从而被平台官方盯上了,原因是我写的文章有针对平台的使用的问题进行了说明和建议,说白了就是官方看不惯我说他们一点不好,首先文章是很客观的,也是包含了本人使用的亲身经历和实际发生的问题,为此于2023年3月31日,平台官方人员私自查用了我的私人手机号,并打电话沟通之前我发布的问题(之前2年前发布的问题都没有这么主动),电话语气十分不屑,官方说是为了沟通问题,但是我用了两年多了,没见过一次打电话,直到官方最后说出了真实用意,让我删除某书上的文章(就是前面提到的建议文章), 我也是没多理会没有时间和这个平台纠缠,隔日我看到平台我发布的问题官方人员进行了回复,目的很明确也是让我删除帖子,然后当天我的文章被百度关闭了推荐,4月4日简书封锁了我的文章,文章阅读量不多2700左右,受到官方重视我也是很荣幸。

情况就是这样,令我吃惊的是平台的营销和公关手段,比他们的平台做的要好不知道几倍,本来我看百度推广下了就下了,无所谓但是你们有点太欺负人了,文章直接给我封锁?怎么我说的某些点,戳到他们的痛楚了?亲身经历你和我说我发的东西不属实,既然这样我们客户很多,平台的客户也有很多,况且我不忙的时候会照顾下他们。

我可能干不过一个《大平台》,但是我有我坚持的底线和原则,用户提出问题应该去解决找方案,而不是这样做,我很少黑任何东西和人,但是平台确实过分,以后我也不会黑了,我会一五一十的说实话,把这些经历分享给大家,好看清某些平台的嘴脸。

声明 本帖子不涉及任何dcloud官方的东西,文章所指为其他平台。

收起阅读 »

深圳公司招聘uni-app开发

招聘

任职要求:
1.熟练使用uni-app 与 编辑器HBuilderX
2.熟练掌握Vue、js和熟悉工具链(例如webpack、npm)
3.熟练使用sass/css完成页面布局,交互动画
4.熟练使用git完成团队协作开发

岗位职责:
1.自研项目日常维护与开发(App、H5、小程序)
2.管理后台的日常维护与开发(vue-admin)
3.构建高效、可复用、可拓展的组件,优化冗余代码

入职条件:

  1. 只看能力,不看年龄、经历、性別(学历要求本科或以上)
  2. 能独立完成开发工作
  3. 有uniapp开发App经验优先考虑,有功能优化经验、重构经验优先考虑
  4. 熟悉: UI设计/小程序/原生开发/ES6/TypeScript 优先考虑

工作时间:
09:30~19:00
午休:12:30~14:00
周末双休、放假按法定假日

福利:

  1. 五险一金
  2. 定期非强制性团队活动
  3. 带薪年假以及劳动法规定的所有情况

本公司采取较开明的政策,在各方面都给予员工比较大的自由度,让每位员工都保有最大的发挥和成长空间,不仅可以就不同的公司事项提出有影响力的意见,也可以自行选择参与不同的公司事项,不乏晋升机会且发展潜力巨大。

继续阅读 »

任职要求:
1.熟练使用uni-app 与 编辑器HBuilderX
2.熟练掌握Vue、js和熟悉工具链(例如webpack、npm)
3.熟练使用sass/css完成页面布局,交互动画
4.熟练使用git完成团队协作开发

岗位职责:
1.自研项目日常维护与开发(App、H5、小程序)
2.管理后台的日常维护与开发(vue-admin)
3.构建高效、可复用、可拓展的组件,优化冗余代码

入职条件:

  1. 只看能力,不看年龄、经历、性別(学历要求本科或以上)
  2. 能独立完成开发工作
  3. 有uniapp开发App经验优先考虑,有功能优化经验、重构经验优先考虑
  4. 熟悉: UI设计/小程序/原生开发/ES6/TypeScript 优先考虑

工作时间:
09:30~19:00
午休:12:30~14:00
周末双休、放假按法定假日

福利:

  1. 五险一金
  2. 定期非强制性团队活动
  3. 带薪年假以及劳动法规定的所有情况

本公司采取较开明的政策,在各方面都给予员工比较大的自由度,让每位员工都保有最大的发挥和成长空间,不仅可以就不同的公司事项提出有影响力的意见,也可以自行选择参与不同的公司事项,不乏晋升机会且发展潜力巨大。

收起阅读 »

vue自定义输入框输入长度限制

自定义 Vue

在不使用maxlength属性的情况下,如何自定义输入框输入长度限制
可以使用input事件,但是注意在输入中文时,会出问题,
就是在输入汉字时,tartget.value会出现j'han's'df'e'这种,会影响判断,
如何解决呢?

使用watch监听。

使用计算属性。

使用原生JS的compositionstart和compositionend事件。

compositionstart,事件触发于一段文字的输入之前(类似于 keydown 事件,但是该事件仅在若干可见字符的输入之前,而这些可见字符的输入可能需要一连串的键盘操作、语音识别或者点击输入法的备选词)。

compositionend,当文本段落的组成完成或取消时, compositionend 事件将被激发 (具有特殊字符的激发, 需要一系列键和其他输入, 如语音识别或移动中的字词建议)。

使用过滤器(filter)。

继续阅读 »

在不使用maxlength属性的情况下,如何自定义输入框输入长度限制
可以使用input事件,但是注意在输入中文时,会出问题,
就是在输入汉字时,tartget.value会出现j'han's'df'e'这种,会影响判断,
如何解决呢?

使用watch监听。

使用计算属性。

使用原生JS的compositionstart和compositionend事件。

compositionstart,事件触发于一段文字的输入之前(类似于 keydown 事件,但是该事件仅在若干可见字符的输入之前,而这些可见字符的输入可能需要一连串的键盘操作、语音识别或者点击输入法的备选词)。

compositionend,当文本段落的组成完成或取消时, compositionend 事件将被激发 (具有特殊字符的激发, 需要一系列键和其他输入, 如语音识别或移动中的字词建议)。

使用过滤器(filter)。

收起阅读 »

nvue中,uviewui字体图标ttf字体名iconfont与项目其他字体冲突,解决方法

使用软件修改了原字体文件全名,改成了uviewui_iconfont, 有需要的朋友拿去用吧。

我是在/uni_modules/uview-ui/components/u-icon/u-icon.vue中把引入url改成了我修改后的字体的base64,当然大家也可以自行将ttf上传自己的服务器后使用网络地址引用。

继续阅读 »

使用软件修改了原字体文件全名,改成了uviewui_iconfont, 有需要的朋友拿去用吧。

我是在/uni_modules/uview-ui/components/u-icon/u-icon.vue中把引入url改成了我修改后的字体的base64,当然大家也可以自行将ttf上传自己的服务器后使用网络地址引用。

收起阅读 »

关于多端小程序各部分(状态栏/标题栏/导航栏/安全条)尺寸计算的方法

uniapp 多端发布 小程序

当小程序用于多端的时候,对于某些设计,可能需要对各部分的尺寸进行精确计算。
下面就讨论一下这方面的计算方法。

可以直接获取的参数(各家小程序都支持的)
statusBarHeight

部分小程序支持或支持不好的参数
titleBarHeight(支付宝小程序)
navigationBarHeight(百度小程序)
getMenuButtonBoundingClientRect(各家小程序都支持,但是部分小程序存在有时候获取不到的问题,所以可以加一个延时获取的方法)
safeArea/safeAreaInsets 安全区数据(QQ小程序没有)

另外,已知支付宝小程序和头条小程序不支持完全自定义导航栏

下面开始计算
statusBarHeight已知,不需计算
tabBar因为可以完全自定义,这里就不参与计算了。

safeAreasafeBottom
这个可以直接获取,一般的小程序都是safeAreaInsets.bottom
支付宝小程序参数有时候是safeArea.bottom有时候是safeAreaInsets.bottom
另外,QQ小程序没有,用0即可。

关于titleBarHeight

支付宝直接获取,百度可以用navigationBarHeight-statusBarHeight
QQ/微信可以用胶囊位置搭配statusBarHeight获取,具体计算方法是:
胶囊高度+2*(胶囊顶部-statusBarHeight)
这种方法在自定义导航栏模式( "navigationStyle": "custom",)下可行。
但头条小程序不支持完整的自定义导航,暂时没找到方法精确计算标题栏高度,只能根据胶囊位置算一个大概值。
如果哪位大神知道可以计算的方法,望告知。

页面内容区域
QQ/微信 因为全部可以自定义,所以是整个screenHeight
支付宝可以用screenHeight-statusBarHeight-statusBarHeight
其他的类似,但是头条的因为titleBarHeight算不出来,也没有具体给定,暂时没法计算。

继续阅读 »

当小程序用于多端的时候,对于某些设计,可能需要对各部分的尺寸进行精确计算。
下面就讨论一下这方面的计算方法。

可以直接获取的参数(各家小程序都支持的)
statusBarHeight

部分小程序支持或支持不好的参数
titleBarHeight(支付宝小程序)
navigationBarHeight(百度小程序)
getMenuButtonBoundingClientRect(各家小程序都支持,但是部分小程序存在有时候获取不到的问题,所以可以加一个延时获取的方法)
safeArea/safeAreaInsets 安全区数据(QQ小程序没有)

另外,已知支付宝小程序和头条小程序不支持完全自定义导航栏

下面开始计算
statusBarHeight已知,不需计算
tabBar因为可以完全自定义,这里就不参与计算了。

safeAreasafeBottom
这个可以直接获取,一般的小程序都是safeAreaInsets.bottom
支付宝小程序参数有时候是safeArea.bottom有时候是safeAreaInsets.bottom
另外,QQ小程序没有,用0即可。

关于titleBarHeight

支付宝直接获取,百度可以用navigationBarHeight-statusBarHeight
QQ/微信可以用胶囊位置搭配statusBarHeight获取,具体计算方法是:
胶囊高度+2*(胶囊顶部-statusBarHeight)
这种方法在自定义导航栏模式( "navigationStyle": "custom",)下可行。
但头条小程序不支持完整的自定义导航,暂时没找到方法精确计算标题栏高度,只能根据胶囊位置算一个大概值。
如果哪位大神知道可以计算的方法,望告知。

页面内容区域
QQ/微信 因为全部可以自定义,所以是整个screenHeight
支付宝可以用screenHeight-statusBarHeight-statusBarHeight
其他的类似,但是头条的因为titleBarHeight算不出来,也没有具体给定,暂时没法计算。

收起阅读 »

polyline 运动轨迹 高德

使用高德地图绘制运动轨迹,出来的效果,不规则 如图


。测试了一下获取的坐标还是相对精确的。同时使用高德app运动绘制的轨迹比较丝滑,如下图

大家一起讨论,持续研究中,
我使用的高德Key是白嫖的个人账号

继续阅读 »

使用高德地图绘制运动轨迹,出来的效果,不规则 如图


。测试了一下获取的坐标还是相对精确的。同时使用高德app运动绘制的轨迹比较丝滑,如下图

大家一起讨论,持续研究中,
我使用的高德Key是白嫖的个人账号

收起阅读 »