HBuilderX

HBuilderX

极客开发工具
uni-app

uni-app

开发一次,多端覆盖
uniCloud

uniCloud

云开发平台
HTML5+

HTML5+

增强HTML5的功能体验
MUI

MUI

上万Star的前端框架

uniapp原生开发不要使用Java8的lambda语法!

帮助文档

这么过分,一定要发DCLOUD论坛!

现在是凌晨1:00。本人在开发一个uniapp原生插件,需要集成第三方的sdk,在本地调试时一切正常,然后按照教程将插件打包后使用HubliderX在云端打包,却发现使用了sdk的方法除了一其中一个以外都不能用了???点击无任何反应,但是测试方法还能正常使用,然后我就开始各种找原因,,,,最后找了一天才发现,好像是正常的方法都没用lambda语法写,抱着试一试的心态,,,,结果真是这个原因。。。。乌鱼子!

HBuilderX2.3.8+开始支持配置云端打包java编译参数。 格式如下:
"compileOptions": { //可选,Java编译参数配置
"sourceCompatibility": "1.8",
"targetCompatibility": "1.8"
}
云端打包使用的jdk版本为1.8,仅支持取值"1.6"、"1.7"、"1.8"。

明明说的云端打包用的1.8.。。。结果不能用lambda语法。。。。绝了呀兄弟。为了这个无语的问题,我测试了整整一天啊!我的头发啊!
最后附上代码

//这是可以的,使用普通的写法  
apiInstance.cossQrReqCert(context, new CossReqCertCallBack() {  
    @Override  
     public void onCossReqCert(CossReqCertResult cossReqCertResult) {  
                    options.put("errCode",cossReqCertResult.getErrCode());//错误码  
                    options.put("errMsg",cossReqCertResult.getErrMsg());//错误信息  
                    options.put("msspID",cossReqCertResult.getMsspID());//  
                    callback.invoke(options);  
     }  
});
//这样就不行了。。  
apiInstance.cossQrReqCert(context, cossReqCertResult -> {  
                options.put("errCode",cossReqCertResult.getErrCode());//错误码  
                options.put("errMsg",cossReqCertResult.getErrMsg());//错误信息  
                options.put("msspID",cossReqCertResult.getMsspID());//  
                callback.invoke(options);  
});
继续阅读 »

这么过分,一定要发DCLOUD论坛!

现在是凌晨1:00。本人在开发一个uniapp原生插件,需要集成第三方的sdk,在本地调试时一切正常,然后按照教程将插件打包后使用HubliderX在云端打包,却发现使用了sdk的方法除了一其中一个以外都不能用了???点击无任何反应,但是测试方法还能正常使用,然后我就开始各种找原因,,,,最后找了一天才发现,好像是正常的方法都没用lambda语法写,抱着试一试的心态,,,,结果真是这个原因。。。。乌鱼子!

HBuilderX2.3.8+开始支持配置云端打包java编译参数。 格式如下:
"compileOptions": { //可选,Java编译参数配置
"sourceCompatibility": "1.8",
"targetCompatibility": "1.8"
}
云端打包使用的jdk版本为1.8,仅支持取值"1.6"、"1.7"、"1.8"。

明明说的云端打包用的1.8.。。。结果不能用lambda语法。。。。绝了呀兄弟。为了这个无语的问题,我测试了整整一天啊!我的头发啊!
最后附上代码

//这是可以的,使用普通的写法  
apiInstance.cossQrReqCert(context, new CossReqCertCallBack() {  
    @Override  
     public void onCossReqCert(CossReqCertResult cossReqCertResult) {  
                    options.put("errCode",cossReqCertResult.getErrCode());//错误码  
                    options.put("errMsg",cossReqCertResult.getErrMsg());//错误信息  
                    options.put("msspID",cossReqCertResult.getMsspID());//  
                    callback.invoke(options);  
     }  
});
//这样就不行了。。  
apiInstance.cossQrReqCert(context, cossReqCertResult -> {  
                options.put("errCode",cossReqCertResult.getErrCode());//错误码  
                options.put("errMsg",cossReqCertResult.getErrMsg());//错误信息  
                options.put("msspID",cossReqCertResult.getMsspID());//  
                callback.invoke(options);  
});
收起阅读 »

纯前端开发怎么开发微信射击类的小游戏

微信小程序 JavaScript

欢迎加入技术讨论

欢迎加入技术讨论

团队在线接活 uni-app,小程序,公众号,网站平台... 有意者联系 qq:1606007510,vx:14778209885

外包

团队在线接活 uni-app,小程序,公众号,网站平台... 有意者联系 qq:1606007510,vx:14778209885

团队在线接活 uni-app,小程序,公众号,网站平台... 有意者联系 qq:1606007510,vx:14778209885

企业级产品研发技术交流分享

小程序 java uniapp模板 uniapp插件 uniapp

技术栈介绍:
1、前端:小程序使用uniapp开发框架,web管理端使用基于Vue.js 2.x系列 + Element UI 的后台管理系统解决方案。
2、后端:使用java语言基于框架springcloud+netty开发,数据库redis+mysql。

技术方案:
springboot,mybatis,mysql,redis,springcloud,zuul,feign,swagger,eureka,netty

系统采用SaaS架构:小程序前端、个人web后端、总部web后端

有需要技术学习的同学,可以加我微信:18810760218

完整的企业级项目:包括架构、源码、数据库、部署、产品介绍

可以作为整个软件开发团队的技术底座、架构底座、应用底座、产品底座

60+核心功能,做为产品功能底座

继续阅读 »

技术栈介绍:
1、前端:小程序使用uniapp开发框架,web管理端使用基于Vue.js 2.x系列 + Element UI 的后台管理系统解决方案。
2、后端:使用java语言基于框架springcloud+netty开发,数据库redis+mysql。

技术方案:
springboot,mybatis,mysql,redis,springcloud,zuul,feign,swagger,eureka,netty

系统采用SaaS架构:小程序前端、个人web后端、总部web后端

有需要技术学习的同学,可以加我微信:18810760218

完整的企业级项目:包括架构、源码、数据库、部署、产品介绍

可以作为整个软件开发团队的技术底座、架构底座、应用底座、产品底座

60+核心功能,做为产品功能底座

收起阅读 »

iOS端调用的文字转语音并监听播报完毕

iOS
if (uni.getSystemInfoSync().platform == "ios") {  

    var AVAudioSession = plus.ios.importClass("AVAudioSession");  
    var AVSpeechSynthesizer = plus.ios.importClass("AVSpeechSynthesizer");  
    var AVSpeechUtterance = plus.ios.importClass("AVSpeechUtterance");  
    var AVSpeechSynthesisVoice = plus.ios.importClass("AVSpeechSynthesisVoice");  

    AVAudioSession.sharedInstance().setCategoryerror("AVAudioSessionCategoryPlayback", null);  

    var sppech = new AVSpeechSynthesizer();  

    var utterance = AVSpeechUtterance.speechUtteranceWithString("你的文字");  
    var voice = AVSpeechSynthesisVoice.voiceWithLanguage("zh-CN");  

    utterance.plusSetAttribute("voice",voice);  
    utterance.plusSetAttribute("rate", 0.65);// 0.65为速度,越大播报速度越快  

    sppech.speakUtterance(utterance);  

    // 监听播报完毕  
    var delegate = plus.ios.implements("AVSpeechSynthesizerDelegate", {  
        "speechSynthesizer:didFinishSpeechUtterance:":function(synthesizer,utterance){  

            console.log("播报完");  

        }  
    })  

    sppech.plusSetAttribute("delegate", delegate);  

}
继续阅读 »
if (uni.getSystemInfoSync().platform == "ios") {  

    var AVAudioSession = plus.ios.importClass("AVAudioSession");  
    var AVSpeechSynthesizer = plus.ios.importClass("AVSpeechSynthesizer");  
    var AVSpeechUtterance = plus.ios.importClass("AVSpeechUtterance");  
    var AVSpeechSynthesisVoice = plus.ios.importClass("AVSpeechSynthesisVoice");  

    AVAudioSession.sharedInstance().setCategoryerror("AVAudioSessionCategoryPlayback", null);  

    var sppech = new AVSpeechSynthesizer();  

    var utterance = AVSpeechUtterance.speechUtteranceWithString("你的文字");  
    var voice = AVSpeechSynthesisVoice.voiceWithLanguage("zh-CN");  

    utterance.plusSetAttribute("voice",voice);  
    utterance.plusSetAttribute("rate", 0.65);// 0.65为速度,越大播报速度越快  

    sppech.speakUtterance(utterance);  

    // 监听播报完毕  
    var delegate = plus.ios.implements("AVSpeechSynthesizerDelegate", {  
        "speechSynthesizer:didFinishSpeechUtterance:":function(synthesizer,utterance){  

            console.log("播报完");  

        }  
    })  

    sppech.plusSetAttribute("delegate", delegate);  

}
收起阅读 »

CSS 自动验证格式化排序 一行一条

格式化 语法验证 css

传送
https://ask.dcloud.net.cn/article/628

传送
https://ask.dcloud.net.cn/article/628

日历、提醒事项 添加日程和提醒(ios)

日历、提醒事项 添加日程和提醒(ios):https://ext.dcloud.net.cn/plugin?id=5203

日历、提醒事项 添加日程和提醒(ios):https://ext.dcloud.net.cn/plugin?id=5203

uni-app使APP开发变得简单,1个月完成电商系统APP小程序的开发

uniapp插件 uniapp模板 uniapp

早些时间用Yii底层框架开发了一套PHP多商户电商系统,系统源码放在gitee提供免费下载,用户体验不错。后面随着业务的发展,需要开发APP和小程序,刚开始分两个团队开发,一个团队写原生APP,一个团队用微信小程序开发工具写微信小程序。写原生APP和小程序耗时费力,而且项目难以协调统一。后面开始学习uni-app混合开发,没有想到代码写法相似,信手拈来,一个月时间不到把APP、小程序开发完了。而且很快都顺利上架应用市场!不得不感叹dcloud是一个神奇的平台。下面分享下项目成果

源码下载:https://gitee.com/shopwind/yii2-shopwind
项目介绍:https://www.shopwind.net

uni-app效果展示:


APP小程序演示码:

继续阅读 »

早些时间用Yii底层框架开发了一套PHP多商户电商系统,系统源码放在gitee提供免费下载,用户体验不错。后面随着业务的发展,需要开发APP和小程序,刚开始分两个团队开发,一个团队写原生APP,一个团队用微信小程序开发工具写微信小程序。写原生APP和小程序耗时费力,而且项目难以协调统一。后面开始学习uni-app混合开发,没有想到代码写法相似,信手拈来,一个月时间不到把APP、小程序开发完了。而且很快都顺利上架应用市场!不得不感叹dcloud是一个神奇的平台。下面分享下项目成果

源码下载:https://gitee.com/shopwind/yii2-shopwind
项目介绍:https://www.shopwind.net

uni-app效果展示:


APP小程序演示码:

收起阅读 »

难怪网上那么多人喷uniapp管理

提的问题几乎没有管理人员回答,群友实力参差不齐,小助手仗着有点权力随便踢人,这个就是你们的态度吗,看来uniapp要在这个问题上遗臭万年了。

提的问题几乎没有管理人员回答,群友实力参差不齐,小助手仗着有点权力随便踢人,这个就是你们的态度吗,看来uniapp要在这个问题上遗臭万年了。

GoEasyIM聊天即时通讯新版Demo发布,欢迎各位试用

uniapp WEBSOCKET 即时通信 聊天 IM

GoEasyIM介绍

GoEasyIM 是在GoEasy的基础上开发的IM即时通讯平台。旨在帮助开发者简单、快速的开发聊天类应用(IM聊天,客服系统等),也可以用于其他的即时通讯场景。

Demo地址:https://ext.dcloud.net.cn/plugin?id=5177

模板介绍

  • 模板涵盖的模块有:登录、会话列表、单聊、群聊、通讯录、我的;
  • 模板涉及的功能有:单聊、群聊、会话列表、离线消息、历史消息、通知栏推送、用户上下线提醒等
  • 模板支持的消息类型有:文本、表情、图片、语音、视频、自定义消息等,开发者可通过自定义消息接口拓展更多消息类型。

模板说明

  • 模板为方便演示,做了本地化的数据处理,在restapi.js 里可以找到用户名和密码
  • 注册GoEasy平台获得appkey才可以使用相关功能
  • 模板支持编译为安卓APP、iOS APP、微信小程序等

运行步骤

  • 要发送语音、视频和图片,请先配置阿里云OSS参数
  • 在main.js里将appkey替换为您自己的common key
    const goEasy = GoEasy.getInstance({  
    host:'hangzhou.goeasy.io',  
    appkey: 'BC-xxxx',  
    // true表示支持通知栏提醒,false则表示不需要通知栏提醒  
    allowNotification:true, //仅有效于app,小程序和H5将会被自动忽略  
    modules:["im"]  
    });
  • 在restapi.js 里可以找到用户名和密码
  • 系统默认不启用用户上下线提醒服务,付费应用可以登陆GoEasy,在“我的应用”里启用

模板预览

会话列表
单聊
群聊
自定义消息

接入厂商通道

如果希望APP进程被杀掉后,仍然可以收到通知栏提醒,必须要接入厂商通道,详情请参阅GoEasy接入厂商通道教程

继续阅读 »

GoEasyIM介绍

GoEasyIM 是在GoEasy的基础上开发的IM即时通讯平台。旨在帮助开发者简单、快速的开发聊天类应用(IM聊天,客服系统等),也可以用于其他的即时通讯场景。

Demo地址:https://ext.dcloud.net.cn/plugin?id=5177

模板介绍

  • 模板涵盖的模块有:登录、会话列表、单聊、群聊、通讯录、我的;
  • 模板涉及的功能有:单聊、群聊、会话列表、离线消息、历史消息、通知栏推送、用户上下线提醒等
  • 模板支持的消息类型有:文本、表情、图片、语音、视频、自定义消息等,开发者可通过自定义消息接口拓展更多消息类型。

模板说明

  • 模板为方便演示,做了本地化的数据处理,在restapi.js 里可以找到用户名和密码
  • 注册GoEasy平台获得appkey才可以使用相关功能
  • 模板支持编译为安卓APP、iOS APP、微信小程序等

运行步骤

  • 要发送语音、视频和图片,请先配置阿里云OSS参数
  • 在main.js里将appkey替换为您自己的common key
    const goEasy = GoEasy.getInstance({  
    host:'hangzhou.goeasy.io',  
    appkey: 'BC-xxxx',  
    // true表示支持通知栏提醒,false则表示不需要通知栏提醒  
    allowNotification:true, //仅有效于app,小程序和H5将会被自动忽略  
    modules:["im"]  
    });
  • 在restapi.js 里可以找到用户名和密码
  • 系统默认不启用用户上下线提醒服务,付费应用可以登陆GoEasy,在“我的应用”里启用

模板预览

会话列表
单聊
群聊
自定义消息

接入厂商通道

如果希望APP进程被杀掉后,仍然可以收到通知栏提醒,必须要接入厂商通道,详情请参阅GoEasy接入厂商通道教程

收起阅读 »

Dcloud、HBullder 账户注销流程

1.邮件注销:
请将你的账户名称以及绑定的邮箱、手机号,提供注销原由到:service@dcloud.io,详细详细的说明情况
2. 人工注销:
点击图像进入主页,私信论坛官方人员

3. 发布帖子注销:
官方工作人员,看到后,根据时间、心情等多个因素决定注销还是不注销。

继续阅读 »

1.邮件注销:
请将你的账户名称以及绑定的邮箱、手机号,提供注销原由到:service@dcloud.io,详细详细的说明情况
2. 人工注销:
点击图像进入主页,私信论坛官方人员

3. 发布帖子注销:
官方工作人员,看到后,根据时间、心情等多个因素决定注销还是不注销。

收起阅读 »

关于wkWebview不支持setcookie解决办法?

WKWebview

App/uni-app离线本地存储方案中已经提到了

plus.navigator.setCookie与HTML5的标准cookie相比,plus的扩展主要是为了跨域。所谓跨越,就是本地HTML页面和服务器HTML页面共享cookie数据,或者说本地页面的js可以操作服务器页面产生的cookie。如果没有跨越需求,不需要使用plus扩展。注意iOS8以后的wkWebview不支持setcookie。

wap2app项目的解决方法比较简单,只要在M站上的 js 中使用标准的浏览器js获取cookie 然后保存为 Webview 的 plus.storage就解决,至于会带来什么安全问题暂时不考虑,浏览器还不是随意可查cookie。

var Cookie = document.cookie;  
document.addEventListener('plusready', ()=> {   
     plus.storage.setItem("Cookie",this.Cookie);  
})

然偶在wap2app的本地js 中就可以使用 console.log(plus.storage.getItem("Cookie"))获取了,

继续阅读 »

App/uni-app离线本地存储方案中已经提到了

plus.navigator.setCookie与HTML5的标准cookie相比,plus的扩展主要是为了跨域。所谓跨越,就是本地HTML页面和服务器HTML页面共享cookie数据,或者说本地页面的js可以操作服务器页面产生的cookie。如果没有跨越需求,不需要使用plus扩展。注意iOS8以后的wkWebview不支持setcookie。

wap2app项目的解决方法比较简单,只要在M站上的 js 中使用标准的浏览器js获取cookie 然后保存为 Webview 的 plus.storage就解决,至于会带来什么安全问题暂时不考虑,浏览器还不是随意可查cookie。

var Cookie = document.cookie;  
document.addEventListener('plusready', ()=> {   
     plus.storage.setItem("Cookie",this.Cookie);  
})

然偶在wap2app的本地js 中就可以使用 console.log(plus.storage.getItem("Cookie"))获取了,

收起阅读 »