HBuilderX

HBuilderX

极客开发工具
uni-app

uni-app

开发一次,多端覆盖
uniCloud

uniCloud

云开发平台
HTML5+

HTML5+

增强HTML5的功能体验
MUI

MUI

上万Star的前端框架

editor无法被键盘顶起(app端解决方案,仍有部分机型有小问题)

uniapp editor

接手的项目碰到editor聚焦不被顶起的问题,在社区找到这个 #editor无法被键盘顶起
根据这个问题排查了一下,目前有以下几种情况:

  1. 在别的页面有输入框发生聚焦后,直接离开页面,editor每次聚焦都不会顶起
  2. 在别的页面有输入框发生聚焦失焦后,离开页面,editor第一次聚焦不会顶起

解决办法:

app端:在有editor组件的页面调用以下方法

我的editor组件所在页面往后跳转还有带有input框的页面,所以我将这一部分代码放在onShow里面

    let webview = this.$scope.$getAppWebview()  
    webview.setSoftinputTemporary({mode:'adjustResize'})// 这里mode传任意值/不传任何参数 都可以生效

但是仍有部分机型还会出现以下问题(如小米15):
在密码框失焦后,editor第一次获取焦点仍不会上推页面

继续阅读 »

接手的项目碰到editor聚焦不被顶起的问题,在社区找到这个 #editor无法被键盘顶起
根据这个问题排查了一下,目前有以下几种情况:

  1. 在别的页面有输入框发生聚焦后,直接离开页面,editor每次聚焦都不会顶起
  2. 在别的页面有输入框发生聚焦失焦后,离开页面,editor第一次聚焦不会顶起

解决办法:

app端:在有editor组件的页面调用以下方法

我的editor组件所在页面往后跳转还有带有input框的页面,所以我将这一部分代码放在onShow里面

    let webview = this.$scope.$getAppWebview()  
    webview.setSoftinputTemporary({mode:'adjustResize'})// 这里mode传任意值/不传任何参数 都可以生效

但是仍有部分机型还会出现以下问题(如小米15):
在密码框失焦后,editor第一次获取焦点仍不会上推页面

收起阅读 »

vue3 uni-popup拿不到ref的看过来

vue3

翻了半天的帖子,看到各种神人说原因,没一个说到点上的。
拿不到Ref的最重要原因是:你没有重启HBuilder和设置uni-popup的type
安装完uni-popup记得重启HBuilder和设置uni-popup的type属性就好了。

翻了半天的帖子,看到各种神人说原因,没一个说到点上的。
拿不到Ref的最重要原因是:你没有重启HBuilder和设置uni-popup的type
安装完uni-popup记得重启HBuilder和设置uni-popup的type属性就好了。

uni-admin后台 日期选择控件显示不全

bug反馈

uni-admin后台 日期选择控件显示不全 这个显眼的bug官方没测试???????

/uni_modules/uni-table/components/uni-th/filter-dropdown.vue

<uni-datetime-picker ref="datetimepicker" :value="dateRange" type="datetimerange" return-type="timestamp" @change="datetimechange" @maskClick="timepickerclose">
<view></view>
</uni-datetime-picker>

搞了半天 加个宽度好了

style="width: 580px;"

继续阅读 »

uni-admin后台 日期选择控件显示不全 这个显眼的bug官方没测试???????

/uni_modules/uni-table/components/uni-th/filter-dropdown.vue

<uni-datetime-picker ref="datetimepicker" :value="dateRange" type="datetimerange" return-type="timestamp" @change="datetimechange" @maskClick="timepickerclose">
<view></view>
</uni-datetime-picker>

搞了半天 加个宽度好了

style="width: 580px;"

收起阅读 »

使用uniapp打包的APP查询公钥的方法

uniapp

现在APP上架,不管是原生应用也好,uniapp开发的应用也好,上架前都需要备案。

而备案的时候的一个很重要的技术参数,就是APP的公钥、MD5值和SHA1值这些参数需要填写。

无论是公钥、MD5值还是SHA1值这些信息其实都是可以通过打包的证书查询。

但是网上很多使用命令将证书的公钥查出来的方法,或者是使用java代码将公钥查出来,都是不能用的,因为通过这些方法查出来的只是原始格式的公钥,base64格式的公钥。并不是上架需要填写的格式。

这里,可以使用香蕉云编来在线查询公钥的值,上传证书即可获取。

IOS的公钥的查询工具(包含MD5和sha1值、sha256值的查询):
https://www.yunedit.com/iosmd5

安卓公钥的查询工具:
https://www.yunedit.com/androidmd5

继续阅读 »

现在APP上架,不管是原生应用也好,uniapp开发的应用也好,上架前都需要备案。

而备案的时候的一个很重要的技术参数,就是APP的公钥、MD5值和SHA1值这些参数需要填写。

无论是公钥、MD5值还是SHA1值这些信息其实都是可以通过打包的证书查询。

但是网上很多使用命令将证书的公钥查出来的方法,或者是使用java代码将公钥查出来,都是不能用的,因为通过这些方法查出来的只是原始格式的公钥,base64格式的公钥。并不是上架需要填写的格式。

这里,可以使用香蕉云编来在线查询公钥的值,上传证书即可获取。

IOS的公钥的查询工具(包含MD5和sha1值、sha256值的查询):
https://www.yunedit.com/iosmd5

安卓公钥的查询工具:
https://www.yunedit.com/androidmd5

收起阅读 »

大佬们,云控件如何初始化

我现在控制台一直报at process.processTicksAndRejections (node:internal/process/task_queues:95:5),也登录不上admin项目

我现在控制台一直报at process.processTicksAndRejections (node:internal/process/task_queues:95:5),也登录不上admin项目

多客开源圈子交友社区论坛爱好圈子源码,同城信息交流资讯圈子平台(可打包app+小程序+H5)安装教程

圈子系统是一种社交平台或论坛功能模块,允许用户根据兴趣、地域或职业等因素创建和管理社交圈层

圈子系统的功能
用户创建圈子:用户可以根据自己的兴趣或需求创建圈子,并邀请其他用户加入,从而形成特定的社交群体。
内容发布与互动:圈子内的用户可以发布动态、进行评论、点赞和私信等互动操作,增强社交体验。
多种内容形式:支持文字、语音、视频等多种形式的帖子,满足不同用户的需求。
多端支持:圈子系统通常支持PC端、H5端和移动端(如小程序和APP),确保用户在不同设备上都能方便访问。

1.购买服务器并安装宝塔
远程连接服务器有可能会要求输入服务器root密码)——去bt.cn复制安装宝塔命令【CentOS/windows】
2.准备域名
需备案
3.解析域名
控制台——进入服务器找到并复制公网ip——进入域名
解析添加www/客户指定二级域名
4.服务器开端口
控制台——进入服务器——安全组/防火墙-添加规则/端口——开放宝塔端口、8282、80、443
5.进入宝塔后端配置
配置环境php 7.3、MySQL 5.6、Nginx/Apache
添加站点-点击根目录导入后端代码并解压
到站点配置伪静态Thinkphp、绑定运行目录public、申请Let's Encrypt(免费3个月)SSL证书
修改配置文件.env 数据库、授权码
启动IM—到软件商店找到PHP7.3,删除函数pcntl_fork、pcntl_signal
——修改SSL证书路径/duokechat/Applications/YourApp/start_gateway.php
(linux 宝塔的 SSL 证书的目录是在 :/www/server/panel/vhost/ssl/网站域名/fullchain.pem 和 privkey.pem)
——在/duokechat目录点击终端连接(有可能会要求输入服务器root密码)
——输入php start.php start -d启动命令,显示3个绿色,后台打开有客服和语音弹框通知即为启动成功,如需停止输入php start.php stop
咨询客服和更多功能...

继续阅读 »

圈子系统是一种社交平台或论坛功能模块,允许用户根据兴趣、地域或职业等因素创建和管理社交圈层

圈子系统的功能
用户创建圈子:用户可以根据自己的兴趣或需求创建圈子,并邀请其他用户加入,从而形成特定的社交群体。
内容发布与互动:圈子内的用户可以发布动态、进行评论、点赞和私信等互动操作,增强社交体验。
多种内容形式:支持文字、语音、视频等多种形式的帖子,满足不同用户的需求。
多端支持:圈子系统通常支持PC端、H5端和移动端(如小程序和APP),确保用户在不同设备上都能方便访问。

1.购买服务器并安装宝塔
远程连接服务器有可能会要求输入服务器root密码)——去bt.cn复制安装宝塔命令【CentOS/windows】
2.准备域名
需备案
3.解析域名
控制台——进入服务器找到并复制公网ip——进入域名
解析添加www/客户指定二级域名
4.服务器开端口
控制台——进入服务器——安全组/防火墙-添加规则/端口——开放宝塔端口、8282、80、443
5.进入宝塔后端配置
配置环境php 7.3、MySQL 5.6、Nginx/Apache
添加站点-点击根目录导入后端代码并解压
到站点配置伪静态Thinkphp、绑定运行目录public、申请Let's Encrypt(免费3个月)SSL证书
修改配置文件.env 数据库、授权码
启动IM—到软件商店找到PHP7.3,删除函数pcntl_fork、pcntl_signal
——修改SSL证书路径/duokechat/Applications/YourApp/start_gateway.php
(linux 宝塔的 SSL 证书的目录是在 :/www/server/panel/vhost/ssl/网站域名/fullchain.pem 和 privkey.pem)
——在/duokechat目录点击终端连接(有可能会要求输入服务器root密码)
——输入php start.php start -d启动命令,显示3个绿色,后台打开有客服和语音弹框通知即为启动成功,如需停止输入php start.php stop
咨询客服和更多功能...

收起阅读 »

用snapdom替换html2canvas

<script module="capture" lang="renderjs">  
    export default {  
        mounted() {  
            // 动态引入较大类库避免影响页面展示  
            const script = document.createElement('script')  
            // view 层的页面运行在 www 根目录,其相对路径相对于 www 计算  
            // #ifdef APP-PLUS  
            script.src = 'static/js/snapdom.js' // 路径根据实际情况调整  
            // #endif  
            document.head.appendChild(script)  
        },  
        methods: {  
            convertImage(event, ownerInstance) {  
                ownerInstance.callMethod('loading')  
                snapdom.toPng(document.querySelector('.wrapper'), {  
                    scale: 2  
                }).then((res) => {  
                    ownerInstance.callMethod('saveImage', res.src)  
                })  
            }  
        }  
    }  
</script>

res.src是个base64,需要保存本地可以使用image-tools.js的base64ToPath方法再调用uni.saveImageToPhotosAlbum

继续阅读 »
<script module="capture" lang="renderjs">  
    export default {  
        mounted() {  
            // 动态引入较大类库避免影响页面展示  
            const script = document.createElement('script')  
            // view 层的页面运行在 www 根目录,其相对路径相对于 www 计算  
            // #ifdef APP-PLUS  
            script.src = 'static/js/snapdom.js' // 路径根据实际情况调整  
            // #endif  
            document.head.appendChild(script)  
        },  
        methods: {  
            convertImage(event, ownerInstance) {  
                ownerInstance.callMethod('loading')  
                snapdom.toPng(document.querySelector('.wrapper'), {  
                    scale: 2  
                }).then((res) => {  
                    ownerInstance.callMethod('saveImage', res.src)  
                })  
            }  
        }  
    }  
</script>

res.src是个base64,需要保存本地可以使用image-tools.js的base64ToPath方法再调用uni.saveImageToPhotosAlbum

收起阅读 »

分享几个适合做付费群聊的源码备份网

源码分享

黑名单举报查询系统源码:https://www.ymbf.cn/51_2432.html
《小皮游戏网》源码 大型手游:https://www.ymbf.cn/51_2430.html
APP分发程序源码:https://www.ymbf.cn/58_2424.html
抖音在线去水印解析网PHP源码:https://www.ymbf.cn/51_2423.html
微信小程序商城源码 :https://www.ymbf.cn/53_2414.html

继续阅读 »

黑名单举报查询系统源码:https://www.ymbf.cn/51_2432.html
《小皮游戏网》源码 大型手游:https://www.ymbf.cn/51_2430.html
APP分发程序源码:https://www.ymbf.cn/58_2424.html
抖音在线去水印解析网PHP源码:https://www.ymbf.cn/51_2423.html
微信小程序商城源码 :https://www.ymbf.cn/53_2414.html

收起阅读 »

GitHub 1.8k stars 的 vue3 组件库 Wot UI 关闭了插件市场下载广告,请自由下载使用

组件 广告

GitHub 1.8k stars 的 vue3 组件库 Wot UI 关闭了插件市场下载广告,欢迎自由下载使用。

插件市场:https://ext.dcloud.net.cn/plugin?id=13889

继续阅读 »

GitHub 1.8k stars 的 vue3 组件库 Wot UI 关闭了插件市场下载广告,欢迎自由下载使用。

插件市场:https://ext.dcloud.net.cn/plugin?id=13889

收起阅读 »

【官方消息uni.webview.js下载地址】gitcode近期进行了改版,原gitcode.net仓库迁移到了gitcode.com

文档 uniapp Webview

gitcode近期进行了改版,原gitcode.net仓库迁移到了gitcode.com,新gitcode地址
uni.webview.js下载地址
后续以官方更新的文档内,uni.webview.js的链接地址为准!

继续阅读 »

gitcode近期进行了改版,原gitcode.net仓库迁移到了gitcode.com,新gitcode地址
uni.webview.js下载地址
后续以官方更新的文档内,uni.webview.js的链接地址为准!

收起阅读 »

现在有没有要开发uniapp的?

外包接单 外包

本人很早之前开发了很多uniapp代码,那会儿比较流行开发小程序和h5,不知道这么多年过去了,现在还有人开发小程序或者自己的网站吗?

现在外包市场怎么样?

本人很早之前开发了很多uniapp代码,那会儿比较流行开发小程序和h5,不知道这么多年过去了,现在还有人开发小程序或者自己的网站吗?

现在外包市场怎么样?

uniapp-x下的tab组件的简单实现

tab

<view class="tablist flex-row flex-wrap justify-between">
<text class="item t-center" :class="{'active': selectTab == index}" v-for="(item, index) in tablist" @click="changeTab(index)">{{item}}</text>
</view>
<swiper :indicator-dots="false" :autoplay="false" :current="selectTab" @change="changeEvent">
<swiper-item v-for="(item, index) in tablist">
<view class="swiper-item">
{{item}}
</view>
</swiper-item>
</swiper>


const selectTab = ref(0)  
const tablist = ["内容1", "内容2", "内容3", "内容4"]  

const changeTab = (index: number)=>{  
    selectTab.value = index  
}  
const changeEvent = (event: UniSwiperChangeEvent)=>{  
    selectTab.value = event.detail.current  
}  
继续阅读 »

<view class="tablist flex-row flex-wrap justify-between">
<text class="item t-center" :class="{'active': selectTab == index}" v-for="(item, index) in tablist" @click="changeTab(index)">{{item}}</text>
</view>
<swiper :indicator-dots="false" :autoplay="false" :current="selectTab" @change="changeEvent">
<swiper-item v-for="(item, index) in tablist">
<view class="swiper-item">
{{item}}
</view>
</swiper-item>
</swiper>


const selectTab = ref(0)  
const tablist = ["内容1", "内容2", "内容3", "内容4"]  

const changeTab = (index: number)=>{  
    selectTab.value = index  
}  
const changeEvent = (event: UniSwiperChangeEvent)=>{  
    selectTab.value = event.detail.current  
}  
收起阅读 »