HBuilderX

HBuilderX

极客开发工具
uni-app

uni-app

开发一次,多端覆盖
uniCloud

uniCloud

云开发平台
HTML5+

HTML5+

增强HTML5的功能体验
MUI

MUI

上万Star的前端框架

BaseCloud悬赏征集业务模块插件作品

悬赏任务介绍

BaseCloud生态建设,需要大家的共同参与。为促进业务模块的丰富和完善,提高开发者效率,特在此长期以悬赏任务方式征集业务模块插件作品, 评选结束后,优秀作品将作为免费模块开源,供开发者集成使用,优秀的作品将获得任务悬赏奖励,同时被收录至BaseCloud官方文档中, 在这个具有历史意义的新世界中永远留下你的署名。参与悬赏任务的作者,可按悬赏任务设计要求,自行设计业务模块, 设计完成后发布至DCloud插件市场,发布时标题应与悬赏任务标题一致,待任务截止后评选优秀作品,每个任务仅评选一名获奖作品。

评选依据: 1.符合业务模块功能设计要求,无明显bug; 2.代码规范,接口路径、文件、数据集合命名以base-开头,具体可参考APP更新业务模块代码规范。 3.前端样式类使用BaseCloud样式类库完成,服务端基于BaseCloud完成,管理端基于BaseCloud管理后台完成。

悬赏任务链接 <<

项目简介

BaseCloud是一套基于uniapp、uniCloud、uni-id的全栈开发框架,不依赖任何第三方框架,极度精简轻巧。
在开发前端界面时,除了适配移动端外,它对PC端也做了良好的适配;
在开发云函数时,它可以为您提供拦截器配置、路由管理、分页、列表、单数据快速查询等功能。除此之外,对于一些业务开发中的常用函数也已做好封装,拿来即用。
在BaseCloud的初始化项目模板中,为您实现了贯穿前后端的业务模块:管理员登录、用户管理、菜单管理、角色与权限管理、操作日志、系统参数配置等项目通用的基础后台管理功能,这一切全都基于云函数开发。

项目价值

基于BaseCloud的快速开发UI样式库,可以快速拼装前端界面,高还原度实现设计图效果,兼顾高效与灵活。
基于BaseCloud的云函数公用模块,你可以轻松实现单云函数、多云函数的路由管理、请求拦截管理与权限控制、常用业务函数快速开发。
基于BaseCloud的客户端缓存管理机制,你可以大幅度减少应用的云函数重复调用请求,未来云函数开始计费后,至少节省应用50%的流量费用。
基于BaseCloud的管理后台项目模板,你可以快速初始化一套自带用户、菜单、角色、权限、操作日志、系统参数管理的管理后台项目,在此基础上开始你的项目开发。

当然,这一切都只是刚刚开始,未来我们会基于BaseCloud推出更多贯穿前后端的业务模板,只要您的项目是基于BaseCloud框架,所有的业务模板拿来即用,5分钟快速集成到项目内,无需重复开发前端和后端。

对于开发者而言,基于BaseCloud的全栈快速开发框架,你可以封装自己的贯穿前后端的业务模块,发布到付费业务模块插件市场。
对于企业而言,基于BaseCloud的全栈快速开发框架,无需再费心招募不同工种不同技术栈的工程师,您只需要找到熟悉BaseCloud的工程师,让他们各自独立负责一个业务模块。 未来基于BaseCloud的项目,将会被拆分成几十个甚至上百个独立的模块,每个模块由一个工程师从前端到后端全链路负责,而他只需要懂一门开发语言:javascript,熟悉一个框架:BaseCloud。 项目交付后,您更无须担心后期维护与迭代更新,基于BaseCloud统一的开发规范,您可以很轻松找到随时能够接管您的项目的工程师。

BaseCloud快速上手使用说明文档 <<

继续阅读 »

悬赏任务介绍

BaseCloud生态建设,需要大家的共同参与。为促进业务模块的丰富和完善,提高开发者效率,特在此长期以悬赏任务方式征集业务模块插件作品, 评选结束后,优秀作品将作为免费模块开源,供开发者集成使用,优秀的作品将获得任务悬赏奖励,同时被收录至BaseCloud官方文档中, 在这个具有历史意义的新世界中永远留下你的署名。参与悬赏任务的作者,可按悬赏任务设计要求,自行设计业务模块, 设计完成后发布至DCloud插件市场,发布时标题应与悬赏任务标题一致,待任务截止后评选优秀作品,每个任务仅评选一名获奖作品。

评选依据: 1.符合业务模块功能设计要求,无明显bug; 2.代码规范,接口路径、文件、数据集合命名以base-开头,具体可参考APP更新业务模块代码规范。 3.前端样式类使用BaseCloud样式类库完成,服务端基于BaseCloud完成,管理端基于BaseCloud管理后台完成。

悬赏任务链接 <<

项目简介

BaseCloud是一套基于uniapp、uniCloud、uni-id的全栈开发框架,不依赖任何第三方框架,极度精简轻巧。
在开发前端界面时,除了适配移动端外,它对PC端也做了良好的适配;
在开发云函数时,它可以为您提供拦截器配置、路由管理、分页、列表、单数据快速查询等功能。除此之外,对于一些业务开发中的常用函数也已做好封装,拿来即用。
在BaseCloud的初始化项目模板中,为您实现了贯穿前后端的业务模块:管理员登录、用户管理、菜单管理、角色与权限管理、操作日志、系统参数配置等项目通用的基础后台管理功能,这一切全都基于云函数开发。

项目价值

基于BaseCloud的快速开发UI样式库,可以快速拼装前端界面,高还原度实现设计图效果,兼顾高效与灵活。
基于BaseCloud的云函数公用模块,你可以轻松实现单云函数、多云函数的路由管理、请求拦截管理与权限控制、常用业务函数快速开发。
基于BaseCloud的客户端缓存管理机制,你可以大幅度减少应用的云函数重复调用请求,未来云函数开始计费后,至少节省应用50%的流量费用。
基于BaseCloud的管理后台项目模板,你可以快速初始化一套自带用户、菜单、角色、权限、操作日志、系统参数管理的管理后台项目,在此基础上开始你的项目开发。

当然,这一切都只是刚刚开始,未来我们会基于BaseCloud推出更多贯穿前后端的业务模板,只要您的项目是基于BaseCloud框架,所有的业务模板拿来即用,5分钟快速集成到项目内,无需重复开发前端和后端。

对于开发者而言,基于BaseCloud的全栈快速开发框架,你可以封装自己的贯穿前后端的业务模块,发布到付费业务模块插件市场。
对于企业而言,基于BaseCloud的全栈快速开发框架,无需再费心招募不同工种不同技术栈的工程师,您只需要找到熟悉BaseCloud的工程师,让他们各自独立负责一个业务模块。 未来基于BaseCloud的项目,将会被拆分成几十个甚至上百个独立的模块,每个模块由一个工程师从前端到后端全链路负责,而他只需要懂一门开发语言:javascript,熟悉一个框架:BaseCloud。 项目交付后,您更无须担心后期维护与迭代更新,基于BaseCloud统一的开发规范,您可以很轻松找到随时能够接管您的项目的工程师。

BaseCloud快速上手使用说明文档 <<

收起阅读 »

笔记渲染x5杀掉进程,app退出不行要kill掉

Native.JS 5+sdk X5

小白的笔记
var Intent = plus.android.importClass("android.os.Process");
var pid = Intent.myPid()
console.log("进程id:"+pid)
Intent.killProcess(pid)

逻辑 提示杀掉,让用户重新打开
function 内核判断(){
if(寻找文本(plus.navigator.getUserAgent(),"MQQBrowser")!= -1 ){
console.log ("x5");
}else{
询问框_原生("需要重新打开app","内核加载(可能多次加载)","立即","稍后");
}
}
function 杀掉进程(){
var Intent = plus.android.importClass("android.os.Process");
var pid = Intent.myPid();
console.log("进程id:"+pid);
Intent.killProcess(pid);
}

继续阅读 »

小白的笔记
var Intent = plus.android.importClass("android.os.Process");
var pid = Intent.myPid()
console.log("进程id:"+pid)
Intent.killProcess(pid)

逻辑 提示杀掉,让用户重新打开
function 内核判断(){
if(寻找文本(plus.navigator.getUserAgent(),"MQQBrowser")!= -1 ){
console.log ("x5");
}else{
询问框_原生("需要重新打开app","内核加载(可能多次加载)","立即","稍后");
}
}
function 杀掉进程(){
var Intent = plus.android.importClass("android.os.Process");
var pid = Intent.myPid();
console.log("进程id:"+pid);
Intent.killProcess(pid);
}

收起阅读 »

每日互动(个推)2021届校园招聘开始啦!

招聘


每日互动(个推)2021届校园招聘正式开启!

A股数据智能上市公司
以技术为驱动,用能力论英雄
成长与空间并重,理想与薪资齐飞
健康、阳光、高效、透彻的企业文化下
我们邀你一同点亮数智未来

数据智能第一股,等你这支潜力股

以下是每日互动(个推)
2021届校招具体内容

在“每日”,实现更大的梦想
科技改变每日生活,是我们肩上的责任,更是我们心中的梦想。


未来,还有很多事,我们想与你一起去改变!

【结语】

坐落东方硅谷、筑梦创业天堂
坚持技术创新、落地技术成果
寻找优秀人才、筑梦科技未来
邀你
加入我们,一起创造无限鲸彩!
加入我们,一起改变每日生活!

继续阅读 »


每日互动(个推)2021届校园招聘正式开启!

A股数据智能上市公司
以技术为驱动,用能力论英雄
成长与空间并重,理想与薪资齐飞
健康、阳光、高效、透彻的企业文化下
我们邀你一同点亮数智未来

数据智能第一股,等你这支潜力股

以下是每日互动(个推)
2021届校招具体内容

在“每日”,实现更大的梦想
科技改变每日生活,是我们肩上的责任,更是我们心中的梦想。


未来,还有很多事,我们想与你一起去改变!

【结语】

坐落东方硅谷、筑梦创业天堂
坚持技术创新、落地技术成果
寻找优秀人才、筑梦科技未来
邀你
加入我们,一起创造无限鲸彩!
加入我们,一起改变每日生活!

收起阅读 »

IM即时通讯

chat

官网IM介绍

https://www.pangugle.com/web/im.html

企业版本-项目特点(最大的特点可商用)

  • 私有云部署,可接入自己的用户体系,sdk接入只需5行代码,傻瓜式集成;
  • 断网自动重连,消息补发,如不在线,自动离线消息;
  • 安全可靠(数据加密传输),高速稳定;
  • 拓展性强, 消息支持自定义协议;
  • 后端框架已接入消息队列、任务调度系统、音频转码、视频转码、图片压缩、分布式锁、redis缓存、mysql读写分离;
  • 后端是居于spring boot 开发的框架,非java后端可以通过restful接入用户体系;
  • 只要硬件资源给足, 单机可支持数十万并发;
  • 我们只做im相关的东西,所以我们更专业;

企业版本-功能说明

  • 登陆(单点登陆)、注册、退出账号、更新昵称、上传头像(可接入自己的用户体系)
  • 单聊、群聊、在线客服、群组管理、好友管理、扫一扫、扫码加好友、扫码加群
  • 消息支持【文字、图片、表情、语音(对讲)、名片】,消息离线
  • 消息还支持撤回、删除、转发,查看图册
  • 群组支持全员禁言、单个禁言、拉人、踢人、添加管理员、移除管理员
  • 群名称修改(群主)

为什么使用我们IM

  • 我们价格优惠,APP端才三位数,比起云服务,每个月基础使用都要上千费用,如果用户再多,费用都能上万,甚至更多!
  • 我们直接给源码,并且不加密,方便您二开!
  • 支持所有后端语言!非Java可心通过restful 直接接入!
  • 服务端支持sdk接入,不侵入您的代码!
  • 服务端支持接入自己的用户体系!
  • 开放性设计,可拓展性强,可定制自己的消息体!
  • 一次编码,支持多端,真正省成本!
继续阅读 »

官网IM介绍

https://www.pangugle.com/web/im.html

企业版本-项目特点(最大的特点可商用)

  • 私有云部署,可接入自己的用户体系,sdk接入只需5行代码,傻瓜式集成;
  • 断网自动重连,消息补发,如不在线,自动离线消息;
  • 安全可靠(数据加密传输),高速稳定;
  • 拓展性强, 消息支持自定义协议;
  • 后端框架已接入消息队列、任务调度系统、音频转码、视频转码、图片压缩、分布式锁、redis缓存、mysql读写分离;
  • 后端是居于spring boot 开发的框架,非java后端可以通过restful接入用户体系;
  • 只要硬件资源给足, 单机可支持数十万并发;
  • 我们只做im相关的东西,所以我们更专业;

企业版本-功能说明

  • 登陆(单点登陆)、注册、退出账号、更新昵称、上传头像(可接入自己的用户体系)
  • 单聊、群聊、在线客服、群组管理、好友管理、扫一扫、扫码加好友、扫码加群
  • 消息支持【文字、图片、表情、语音(对讲)、名片】,消息离线
  • 消息还支持撤回、删除、转发,查看图册
  • 群组支持全员禁言、单个禁言、拉人、踢人、添加管理员、移除管理员
  • 群名称修改(群主)

为什么使用我们IM

  • 我们价格优惠,APP端才三位数,比起云服务,每个月基础使用都要上千费用,如果用户再多,费用都能上万,甚至更多!
  • 我们直接给源码,并且不加密,方便您二开!
  • 支持所有后端语言!非Java可心通过restful 直接接入!
  • 服务端支持sdk接入,不侵入您的代码!
  • 服务端支持接入自己的用户体系!
  • 开放性设计,可拓展性强,可定制自己的消息体!
  • 一次编码,支持多端,真正省成本!
收起阅读 »

HBuilderX自定义主题:vscode Light+

主题

vscode Light+ 主题

{  
    "workbench.colorCustomizations":{  
        "[Default]":{  
            "console.background":"#ffffff",  
            "editor.background":"#ffffff",  
            "editorGroup.border":"#e7e7e7",  
            "editorGroupHeader.tabsBackground":"#FFF",  
            "editorSuggestWidget.background":"#F3f3f3",  
            "editorSuggestWidget.selectedBackground":"#d6ebff",  
            "extensionButton.prominentBackground":"#ececec",  
            "extensionButton.prominentHoverBackground":"#f3f3f3",  
            "imageview.background":"#fff",  
            "imageview.foreground":"#fff",  
            "input.background":"#f3f3f3",  
            "inputList.hoverBackground":"#d6ebff",  
            "inputOption.activeBorder":"#eee",  
            "inputValidation.infoBackground":"#f3f3f3",  
            "list.activeSelectionBackground":"#0074e8",  
            "list.highlightForeground":"#FFF",  
            "list.hoverBackground":"#E8e8e8",  
            "minimap.handle.background":"#c9c9c9",  
            "outlineBackground":"#ffffff",  
            "settings.dropdownBackground":"#ffffff",  
            "settings.dropdownBorder":"#ffffff",  
            "settings.textInputBackground":"#ffffff",  
            "settings.textInputBorder":"#eeeeee",  
            "sideBar.background":"#F3f3f3",  
            "statusBar.background":"#007acc",  
            "statusBar.foreground":"#FFFFFF",  
            "tab.border":"#ececec",  
            "tab.hoverBackground":"#ececec",  
            "tab.inactiveBackground":"#ececec",  
            "tab.inactiveForeground":"#000",  
            "tab.unfocusedActiveForeground":"#ececec",  
            "terminal.background":"#ffffff",  
            "titleBar.activeBackground":"#DDDDDD",  
            "toolBar.background":"#ececec",  
            "toolBar.border":"#ececec",  
            "toolBar.hoverBackground":"#F3f3f3"  
        }  
    }  
}

继续阅读 »

vscode Light+ 主题

{  
    "workbench.colorCustomizations":{  
        "[Default]":{  
            "console.background":"#ffffff",  
            "editor.background":"#ffffff",  
            "editorGroup.border":"#e7e7e7",  
            "editorGroupHeader.tabsBackground":"#FFF",  
            "editorSuggestWidget.background":"#F3f3f3",  
            "editorSuggestWidget.selectedBackground":"#d6ebff",  
            "extensionButton.prominentBackground":"#ececec",  
            "extensionButton.prominentHoverBackground":"#f3f3f3",  
            "imageview.background":"#fff",  
            "imageview.foreground":"#fff",  
            "input.background":"#f3f3f3",  
            "inputList.hoverBackground":"#d6ebff",  
            "inputOption.activeBorder":"#eee",  
            "inputValidation.infoBackground":"#f3f3f3",  
            "list.activeSelectionBackground":"#0074e8",  
            "list.highlightForeground":"#FFF",  
            "list.hoverBackground":"#E8e8e8",  
            "minimap.handle.background":"#c9c9c9",  
            "outlineBackground":"#ffffff",  
            "settings.dropdownBackground":"#ffffff",  
            "settings.dropdownBorder":"#ffffff",  
            "settings.textInputBackground":"#ffffff",  
            "settings.textInputBorder":"#eeeeee",  
            "sideBar.background":"#F3f3f3",  
            "statusBar.background":"#007acc",  
            "statusBar.foreground":"#FFFFFF",  
            "tab.border":"#ececec",  
            "tab.hoverBackground":"#ececec",  
            "tab.inactiveBackground":"#ececec",  
            "tab.inactiveForeground":"#000",  
            "tab.unfocusedActiveForeground":"#ececec",  
            "terminal.background":"#ffffff",  
            "titleBar.activeBackground":"#DDDDDD",  
            "toolBar.background":"#ececec",  
            "toolBar.border":"#ececec",  
            "toolBar.hoverBackground":"#F3f3f3"  
        }  
    }  
}

收起阅读 »

【分享】分享一下h5+App如何获取系统复制粘贴的值

粘贴板 复制

代码如下:

if (plus.os.name == 'iOS') {  
            var UIPasteboard = plus.ios.importClass("UIPasteboard");  
            var generalPasteboard = UIPasteboard.generalPasteboard();  
            var value = generalPasteboard.valueForPasteboardType("public.utf8-plain-text");  
            // value就是粘贴板的值  
            alert(value);  
        } else if (plus.os.name == 'Android') {  
            var Context = plus.android.importClass("android.content.Context");  
            var main = plus.android.runtimeMainActivity();  
            var clip = main.getSystemService(Context.CLIPBOARD_SERVICE);  
            var value = plus.android.invoke(clip, "getText");  
            // value就是粘贴板的值  
            alert(value);  
        }
继续阅读 »

代码如下:

if (plus.os.name == 'iOS') {  
            var UIPasteboard = plus.ios.importClass("UIPasteboard");  
            var generalPasteboard = UIPasteboard.generalPasteboard();  
            var value = generalPasteboard.valueForPasteboardType("public.utf8-plain-text");  
            // value就是粘贴板的值  
            alert(value);  
        } else if (plus.os.name == 'Android') {  
            var Context = plus.android.importClass("android.content.Context");  
            var main = plus.android.runtimeMainActivity();  
            var clip = main.getSystemService(Context.CLIPBOARD_SERVICE);  
            var value = plus.android.invoke(clip, "getText");  
            // value就是粘贴板的值  
            alert(value);  
        }
收起阅读 »

Video 组件原来支持播放本地M3U8

video

app端Video组件,看论坛一直以为不能放本地M3U8,经过测试原来不需要任何插件可以直接播放本地M3U8,一直都被论坛误导了.

app端Video组件,看论坛一直以为不能放本地M3U8,经过测试原来不需要任何插件可以直接播放本地M3U8,一直都被论坛误导了.

ios端微信支付

微信支付
                                                                                                         **IOS微信支付**  

(一)微信开放平台
申请微信支付权限(300元)注意一定要注意审核是否通过
填写 Bundle ID就是android包名(不一定非要和APP一样,因为我发现我们app store 上的APP Bundle ID和微信开放平台上不一样 但是还好用 有知道的请告知)
Universal Links 必须填写(苹果的要求) https://demo.dcloud.net.cn/ulink/ 这个地址写死就完事了

(二)manifest清单文件
1.Payment勾选 ios
2.IOS平台通用链接 https://demo.dcloud.net.cn/ulink/

(三)测试
1.必须云打包 自定义基座和标准基座 都会走error毁掉
2.打包需要苹果开发者平台添加UDID
3.获取UDID,三方平台 fir 蒲公英都可以获取
4.将.ipa文件提交到三方平台 下载测试

        HBuilder版本号:2.8.8.20200820  
        邮箱:97272442@qq.com  

      ** 下次写ios怎么上线到App store**  
继续阅读 »
                                                                                                         **IOS微信支付**  

(一)微信开放平台
申请微信支付权限(300元)注意一定要注意审核是否通过
填写 Bundle ID就是android包名(不一定非要和APP一样,因为我发现我们app store 上的APP Bundle ID和微信开放平台上不一样 但是还好用 有知道的请告知)
Universal Links 必须填写(苹果的要求) https://demo.dcloud.net.cn/ulink/ 这个地址写死就完事了

(二)manifest清单文件
1.Payment勾选 ios
2.IOS平台通用链接 https://demo.dcloud.net.cn/ulink/

(三)测试
1.必须云打包 自定义基座和标准基座 都会走error毁掉
2.打包需要苹果开发者平台添加UDID
3.获取UDID,三方平台 fir 蒲公英都可以获取
4.将.ipa文件提交到三方平台 下载测试

        HBuilder版本号:2.8.8.20200820  
        邮箱:97272442@qq.com  

      ** 下次写ios怎么上线到App store**  
收起阅读 »

UniApp H5 浏览器下载图片 兼容iOS、Android

下载 h5 uniapp

由于官方的api下载事件uni.downloadFile下载的是临时文件,需要配合uni.saveFile使用,但是uni.saveFile不支持H5,另外uni.saveImageToPhotosAlbum保存图片到系统相册也不支持H5,所以采用以下方式解决。

安装依赖,这里使用FileSaver,并且支持修改文件名称

npm i file-saver -S

页面代码

import FileSaver from 'file-saver'  
···  
download(){  
  let imgUrl = 'http://www.test.com/img/xxxx.jpg' //网络图片地址  
  FileSaver.saveAs(imgUrl, '图片名称.jpg');  
}

如果图片不同源产生跨域,需要配置代理proxy

项目根目录新建vue.config.js代码如下:

module.exports = {  
  devServer:{  
    proxy:{  
      '/file_url': {    //将www.exaple.com印射为/apis  
        target: 'http://www.test.com',  // 接口域名  
        secure: false,  // 如果是https接口,需要配置这个参数  
        changeOrigin: true,  //是否跨域  
        pathRewrite: {  
            '^/file_url': ''   //需要rewrite的,  
        }                
      }  
    }  
  }  
}

配置代理后,'/file_url' = 'http://www.test.com',需要替换图片地址前缀,页面代码:

import FileSaver from 'file-saver'  
···  
download(){  
  let imgUrl = 'http://www.test.com/img/xxxx.jpg' //网络图片地址  
  FileSaver.saveAs('/file_url'+'/img/xxxx.jpg', '图片名称.jpg');  
}

效果如下:

继续阅读 »

由于官方的api下载事件uni.downloadFile下载的是临时文件,需要配合uni.saveFile使用,但是uni.saveFile不支持H5,另外uni.saveImageToPhotosAlbum保存图片到系统相册也不支持H5,所以采用以下方式解决。

安装依赖,这里使用FileSaver,并且支持修改文件名称

npm i file-saver -S

页面代码

import FileSaver from 'file-saver'  
···  
download(){  
  let imgUrl = 'http://www.test.com/img/xxxx.jpg' //网络图片地址  
  FileSaver.saveAs(imgUrl, '图片名称.jpg');  
}

如果图片不同源产生跨域,需要配置代理proxy

项目根目录新建vue.config.js代码如下:

module.exports = {  
  devServer:{  
    proxy:{  
      '/file_url': {    //将www.exaple.com印射为/apis  
        target: 'http://www.test.com',  // 接口域名  
        secure: false,  // 如果是https接口,需要配置这个参数  
        changeOrigin: true,  //是否跨域  
        pathRewrite: {  
            '^/file_url': ''   //需要rewrite的,  
        }                
      }  
    }  
  }  
}

配置代理后,'/file_url' = 'http://www.test.com',需要替换图片地址前缀,页面代码:

import FileSaver from 'file-saver'  
···  
download(){  
  let imgUrl = 'http://www.test.com/img/xxxx.jpg' //网络图片地址  
  FileSaver.saveAs('/file_url'+'/img/xxxx.jpg', '图片名称.jpg');  
}

效果如下:

收起阅读 »

uniapp使用uni.request请求报错{"errMsg":"request:fail abort statusCode:-1"}的解决办法

问题呈现

在uniapp中,使用uni.request()向服务端接口发起请求后,返回值为:{"errMsg":"request:fail abort statusCode:-1"},因此,导致了后面的业务代码报错

前提

检查了uni.request()根据服务端接口需要的配置(如:url、data、header、method等)都没有问题

问题出现的可能原因

在以上前提下还出现这种问题,最有可能的原因:手机没有连网,或者看着连上了网但实际网络不可用,可以在手机浏览器中随便输入点文字搜一下测试看看,能不能搜到新内容。

仔细查看,这个{"errMsg":"request:fail abort statusCode:-1"}返回值,其实并不是服务端返回来的,因为请求都完全没有到服务端

解决办法

在执行uni.request()向服务端请求前,使用uni.getNetworkType()和uni.onNetworkStatusChange()对网络进行监听,如果监听到当前设备是处于无网络的状态时,就不执行uni.request()请求,而是弹出一个弹框或者消息提示,提醒用户:“当前设备断网了,请检查网络后重试”

注:以上是根据我本人实际遇到这个问题后的解决办法,也是在这个坑里吃了不少苦,分享出来,希望给大家提供参考,若解决了你的问题,不要钱,请点一下赞!因为分享经验需要去组织语言、编辑文字,这个过程其实是需要花精力花时间的,因此,创作不易,分享不易!

继续阅读 »

问题呈现

在uniapp中,使用uni.request()向服务端接口发起请求后,返回值为:{"errMsg":"request:fail abort statusCode:-1"},因此,导致了后面的业务代码报错

前提

检查了uni.request()根据服务端接口需要的配置(如:url、data、header、method等)都没有问题

问题出现的可能原因

在以上前提下还出现这种问题,最有可能的原因:手机没有连网,或者看着连上了网但实际网络不可用,可以在手机浏览器中随便输入点文字搜一下测试看看,能不能搜到新内容。

仔细查看,这个{"errMsg":"request:fail abort statusCode:-1"}返回值,其实并不是服务端返回来的,因为请求都完全没有到服务端

解决办法

在执行uni.request()向服务端请求前,使用uni.getNetworkType()和uni.onNetworkStatusChange()对网络进行监听,如果监听到当前设备是处于无网络的状态时,就不执行uni.request()请求,而是弹出一个弹框或者消息提示,提醒用户:“当前设备断网了,请检查网络后重试”

注:以上是根据我本人实际遇到这个问题后的解决办法,也是在这个坑里吃了不少苦,分享出来,希望给大家提供参考,若解决了你的问题,不要钱,请点一下赞!因为分享经验需要去组织语言、编辑文字,这个过程其实是需要花精力花时间的,因此,创作不易,分享不易!

收起阅读 »

HBuilderX 跳转到指定的行和列

HBuilderX

HBuilderX 2.8.10起,支持跳转到指定的行列

HBuilderX内,跳转到指定行列

支持通过命令行打开指定文件,并跳转到指定的行和列。

/Applications/HBuilderX-Alpha.app/Contents/MacOS/HBuilderX /Users/hx/filename.md:2:10

注意:文件,需要是绝对路径

继续阅读 »

HBuilderX 2.8.10起,支持跳转到指定的行列

HBuilderX内,跳转到指定行列

支持通过命令行打开指定文件,并跳转到指定的行和列。

/Applications/HBuilderX-Alpha.app/Contents/MacOS/HBuilderX /Users/hx/filename.md:2:10

注意:文件,需要是绝对路径

收起阅读 »

uniapp中动态修改伪类元素的样式

data(){ ceshiColor: "#f60" } 中定义了一个变量,让后在要改变的标签中动态添加样式 :style="{ '--color': ceshiColor }" ,最后在样式表中 .ceshi::after{ display: block;content: "我是测试数据", color: var(--color) }

继续阅读 »

data(){ ceshiColor: "#f60" } 中定义了一个变量,让后在要改变的标签中动态添加样式 :style="{ '--color': ceshiColor }" ,最后在样式表中 .ceshi::after{ display: block;content: "我是测试数据", color: var(--color) }

收起阅读 »