HBuilderX

HBuilderX

极客开发工具
uni-app

uni-app

开发一次,多端覆盖
uniCloud

uniCloud

云开发平台
HTML5+

HTML5+

增强HTML5的功能体验
MUI

MUI

上万Star的前端框架

欢迎加入uniapp |小程序 | App |H5 分享 交流群

安卓 iOS uniapp

如果想一起交流技术的/平时在项目中遇到问题bug要想解决的/想开发插件定制项目App的.....,欢迎大佬小白加入交流;

如果想一起交流技术的/平时在项目中遇到问题bug要想解决的/想开发插件定制项目App的.....,欢迎大佬小白加入交流;

编程中最重要的是什么,答案:顺序

bug 顺序 编程顺序

因为顺序产生或者隐藏bug也超级难发现,记录自己踩过的坑!!!

因为顺序产生或者隐藏bug也超级难发现,记录自己踩过的坑!!!

每次升级,都有问题

已知bug

彻底放弃,回去apiclound!!!!有病的企业,开发个锤子!!!一堆垃圾!!!

彻底放弃,回去apiclound!!!!有病的企业,开发个锤子!!!一堆垃圾!!!

uniapp小程序开发运营交流群

uniapp小程序开发运营交流群
相互交流学习

uniapp小程序开发运营交流群
相互交流学习

高效准确的身份证号校验正则分享

正则

线上一直在使用的身份证校验, 经过线上问题反馈不断优化完善了以下几点。

  1. 年份的处理:第七位到第十位是年份,这两位可以是19或者20,处理了更早或更晚的年份。考虑到身份证的合法性,应考虑年份的合理范围,如1920-2099。
  2. 月份的处理:第十一位和第十二位是月份,处理01-12已经很完善。
  3. 日期的处理:第十三位和第十四位是日期,从01-31之间的数值,尚未处理2月份的闰年与平年及不同月份天数的情况。
  4. 正则表达式的简化:可以简化以提高可读性。

function checkIDCard(idcode) {  
    // 加权因子  
    var weight_factor = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];  
    // 校验码  
    var check_code = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'];  

    var code = idcode + '';  
    var last = code[17]; //最后一位  

    var seventeen = code.substring(0, 17);  

    // ISO 7064:1983.MOD 11-2  
    // 判断最后一位校验码是否正确  
    var arr = seventeen.split('');  
    var len = arr.length;  
    var num = 0;  
    for (var i = 0; i < len; i++) {  
        num = num + arr[i] * weight_factor[i];  
    }  

    // 获取余数  
    var resisue = num % 11;  
    var last_no = check_code[resisue];  

    // 格式的正则  
    var idcard_patter =  
        /^[1-9]\d{5}(19\d{2}|20[0-9]{2})(0[1-9]|1[0-2])(0[1-9]|[1-2]\d|3[0-1])\d{3}(\d|X)$/;  

    // 判断格式是否正确  
    var format = idcard_patter.test(idcode);  

    // 容错  
    var failIdcard = '632721201307070036';  
    var result = failIdcard === idcode;  

    // 返回验证结果,校验码和格式同时正确才算是合法的身份证号码  
    return (last === last_no && format) || result;  
}  
继续阅读 »

线上一直在使用的身份证校验, 经过线上问题反馈不断优化完善了以下几点。

  1. 年份的处理:第七位到第十位是年份,这两位可以是19或者20,处理了更早或更晚的年份。考虑到身份证的合法性,应考虑年份的合理范围,如1920-2099。
  2. 月份的处理:第十一位和第十二位是月份,处理01-12已经很完善。
  3. 日期的处理:第十三位和第十四位是日期,从01-31之间的数值,尚未处理2月份的闰年与平年及不同月份天数的情况。
  4. 正则表达式的简化:可以简化以提高可读性。

function checkIDCard(idcode) {  
    // 加权因子  
    var weight_factor = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];  
    // 校验码  
    var check_code = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'];  

    var code = idcode + '';  
    var last = code[17]; //最后一位  

    var seventeen = code.substring(0, 17);  

    // ISO 7064:1983.MOD 11-2  
    // 判断最后一位校验码是否正确  
    var arr = seventeen.split('');  
    var len = arr.length;  
    var num = 0;  
    for (var i = 0; i < len; i++) {  
        num = num + arr[i] * weight_factor[i];  
    }  

    // 获取余数  
    var resisue = num % 11;  
    var last_no = check_code[resisue];  

    // 格式的正则  
    var idcard_patter =  
        /^[1-9]\d{5}(19\d{2}|20[0-9]{2})(0[1-9]|1[0-2])(0[1-9]|[1-2]\d|3[0-1])\d{3}(\d|X)$/;  

    // 判断格式是否正确  
    var format = idcard_patter.test(idcode);  

    // 容错  
    var failIdcard = '632721201307070036';  
    var result = failIdcard === idcode;  

    // 返回验证结果,校验码和格式同时正确才算是合法的身份证号码  
    return (last === last_no && format) || result;  
}  
收起阅读 »

苹果web签网页应用发布

iOS打包 iOS

**如果你用的uniapp开发的app,如果你刚好适配了移动pc应用,如果你想使用ios访问应用,如果你因为苹果开发平台和99刀烦恼,
使用苹果网页签,桌面图标点进去就能运行你的网页应用,,, 联系我:563150499@qq.com

**如果你用的uniapp开发的app,如果你刚好适配了移动pc应用,如果你想使用ios访问应用,如果你因为苹果开发平台和99刀烦恼,
使用苹果网页签,桌面图标点进去就能运行你的网页应用,,, 联系我:563150499@qq.com

uniapp 如何实现视频通话小窗口功能

聊天 视频

需求:
视频通话小窗口

实现:
视频通话页面使用nvue。
视频流使用原生插件。
小窗口使用原生插件。
通话页面的隐藏/显示用 webview的show/hide

遇到的问题:
应用是底部4个 tab,当视频通话在第一个tab打开时,无法在其他三个 tab,实现webview的显示。

疑问:
uni针对底部tab,每个tab都是独立的页面栈。如何做到可以获取非当前tab的webview窗口?

欢迎大佬们在这里针对这个话题来讨论,最终解决问题的红包双手奉上...............

继续阅读 »

需求:
视频通话小窗口

实现:
视频通话页面使用nvue。
视频流使用原生插件。
小窗口使用原生插件。
通话页面的隐藏/显示用 webview的show/hide

遇到的问题:
应用是底部4个 tab,当视频通话在第一个tab打开时,无法在其他三个 tab,实现webview的显示。

疑问:
uni针对底部tab,每个tab都是独立的页面栈。如何做到可以获取非当前tab的webview窗口?

欢迎大佬们在这里针对这个话题来讨论,最终解决问题的红包双手奉上...............

收起阅读 »

关于uniappX启动图的踩坑(APP启动图)

记录自己的踩坑日记一:

图片来自网络,只是举例:
上图
图1是打包成功的画法

图2 图3 是错误的画法

图1的右边黑线和底部黑线是属于保护区,左边和上边属于拉伸区

记录自己的踩坑日记一:

图片来自网络,只是举例:
上图
图1是打包成功的画法

图2 图3 是错误的画法

图1的右边黑线和底部黑线是属于保护区,左边和上边属于拉伸区

【npm,镜像地址】记录安装依赖代码

Vue
// 腾讯镜像  
http://mirrors.cloud.tencent.com/npm/  
// 中科大镜像  
https://registry.npmjs.org/  
// 淘宝镜像  
https://registry.npmmirror.com  
// 阿里云镜像  
https://npm.aliyun.com/
npm install --registry=https://registry.npmmirror.com

↓↓↓ 各位大佬点点赞

继续阅读 »
// 腾讯镜像  
http://mirrors.cloud.tencent.com/npm/  
// 中科大镜像  
https://registry.npmjs.org/  
// 淘宝镜像  
https://registry.npmmirror.com  
// 阿里云镜像  
https://npm.aliyun.com/
npm install --registry=https://registry.npmmirror.com

↓↓↓ 各位大佬点点赞

收起阅读 »

【解决】上传ipa到appstore报错:This bundle does not support one or more of the devices supported

ipa uniapp iOS打包 iOS

解决方法来源:某个提问文章的评论

报错:This bundle does not support one or more of the devices supported by the previous app version. Your app update must continue to support all devices previously supported. You declare supported devices in Xcode with the Targeted Device Family build setting.
百度翻译:此捆绑包不支持以前的应用程序版本支持的一个或多个设备。您的应用程序更新必须继续支持以前支持的所有设备。您在Xcode中使用目标设备系列生成设置声明支持的设备。

1、是使用hbuilderx的云打包,打包出来的ipa
2、解决方法:勾选之前有勾选的设备

↓↓↓ 各位大佬点点赞

继续阅读 »

解决方法来源:某个提问文章的评论

报错:This bundle does not support one or more of the devices supported by the previous app version. Your app update must continue to support all devices previously supported. You declare supported devices in Xcode with the Targeted Device Family build setting.
百度翻译:此捆绑包不支持以前的应用程序版本支持的一个或多个设备。您的应用程序更新必须继续支持以前支持的所有设备。您在Xcode中使用目标设备系列生成设置声明支持的设备。

1、是使用hbuilderx的云打包,打包出来的ipa
2、解决方法:勾选之前有勾选的设备

↓↓↓ 各位大佬点点赞

收起阅读 »

【解决】新建项目运行到H5,左上角有”取消“字眼

uniapp h5

来源:https://blog.csdn.net/qq_35713752/article/details/110442838

在项目根目录下的index.html,添加

<link rel="stylesheet" href="<%= BASE_URL %>static/index.<%= VUE_APP_INDEX_CSS_HASH %>.css" />

如图:

↓↓↓ 各位大佬点点赞

继续阅读 »

来源:https://blog.csdn.net/qq_35713752/article/details/110442838

在项目根目录下的index.html,添加

<link rel="stylesheet" href="<%= BASE_URL %>static/index.<%= VUE_APP_INDEX_CSS_HASH %>.css" />

如图:

↓↓↓ 各位大佬点点赞

收起阅读 »

input输入框选中文本时禁用移动端弹出默认的菜单(剪切、复制、全选、搜索)功能

input

功能需求:input输入框获取焦点后文本需要是选中状态
运行环境:安卓端微信打开网页应用
解决方案:
input监听focus,contextmenu事件
template的代码

<input type="digit" @focus="selectText()" @contextmenu="disableContextMenu()">

script的代码

methods:{  
         selectText() {  
        //选中文本  
            const input = event.currentTarget;  
        if(input.value){  
            input.select()  
        }  
    },  
       disableContextMenu(){  
            //阻止文本选中后弹出功能菜单  
           //方式一:使用preventDefault()  
        event.preventDefault()  
           //方式二:修改returnValue  
           event.returnValue=false  
      }  

}

参考资料:事件处理方法

继续阅读 »

功能需求:input输入框获取焦点后文本需要是选中状态
运行环境:安卓端微信打开网页应用
解决方案:
input监听focus,contextmenu事件
template的代码

<input type="digit" @focus="selectText()" @contextmenu="disableContextMenu()">

script的代码

methods:{  
         selectText() {  
        //选中文本  
            const input = event.currentTarget;  
        if(input.value){  
            input.select()  
        }  
    },  
       disableContextMenu(){  
            //阻止文本选中后弹出功能菜单  
           //方式一:使用preventDefault()  
        event.preventDefault()  
           //方式二:修改returnValue  
           event.returnValue=false  
      }  

}

参考资料:事件处理方法

收起阅读 »