HBuilderX

HBuilderX

极客开发工具
uni-app

uni-app

开发一次,多端覆盖
uniCloud

uniCloud

云开发平台
HTML5+

HTML5+

增强HTML5的功能体验
MUI

MUI

上万Star的前端框架

android 插件 新增 activity

因需要自定义UI界面,在此记录,供遇到同样问题的伙伴作参考:

第1步:MyModule extends WXSDKEngine.DestroyableModule

第2步:Intent intent = new Intent(this.mWXSDKInstance.getContext(), MyActivity.class); mActivity.startActivityForResult(intent, 100);

第3步:MyActivity extends Activity;此处切记继承Activity,不能继承其它扩展的activity,否则会导致界面不展示,程序异常

第4步:在androidmanifest.xml添加权限,添加MyActivity节点

第5步:打成aar包发布

继续阅读 »

因需要自定义UI界面,在此记录,供遇到同样问题的伙伴作参考:

第1步:MyModule extends WXSDKEngine.DestroyableModule

第2步:Intent intent = new Intent(this.mWXSDKInstance.getContext(), MyActivity.class); mActivity.startActivityForResult(intent, 100);

第3步:MyActivity extends Activity;此处切记继承Activity,不能继承其它扩展的activity,否则会导致界面不展示,程序异常

第4步:在androidmanifest.xml添加权限,添加MyActivity节点

第5步:打成aar包发布

收起阅读 »

建议功能 alt + 单击‘自定义组件’标签。可以直接打开自定义组件的页面;

建议功能 alt + 单击‘自定义组件’标签。可以直接打开自定义组件的页面;类似PhpStorm alt +单击 类名称 时跳转到类的页面方便编辑

补充录屏 https://bug666.oss-cn-hangzhou.aliyuncs.com/%E6%9E%97%E4%B8%BE%EF%BD%9E%E5%85%A8%E6%A0%88APP%E8%BD%AF%E4%BB%B6%E5%B7%A5%E7%A8%8B%E5%B8%88%202020-01-01%2019.51.16.mp4

继续阅读 »

建议功能 alt + 单击‘自定义组件’标签。可以直接打开自定义组件的页面;类似PhpStorm alt +单击 类名称 时跳转到类的页面方便编辑

补充录屏 https://bug666.oss-cn-hangzhou.aliyuncs.com/%E6%9E%97%E4%B8%BE%EF%BD%9E%E5%85%A8%E6%A0%88APP%E8%BD%AF%E4%BB%B6%E5%B7%A5%E7%A8%8B%E5%B8%88%202020-01-01%2019.51.16.mp4

收起阅读 »

uni.navigateBack()返回时传递参数,最简单的办法!

页面传值

假如从B页面返回A页面:
var pages = getCurrentPages();
var prevPage = pages[pages.length - 2]; //上一个页面
prevPage.setData({
mdata:1
})
经过测试,在uni.app中使用B页面使用setData设置A页面参数无法实现(应该是被更改为常量属性了)。
打印console.log(prevPage)前一页面对象可得:

方法1:我们可以使用A页面原有方法
onHide: ƒ ()
onLoad: ƒ ()
onReady: ƒ ()
onResize: ƒ ()
onRouteEnd: ƒ ()
onShow: ƒ ()
onUnload: ƒ ()
options
......等传递参数。
B页面传递:
var object={
sx1:"参数1",
sx2:"参数2",
}
prevPage.onShow(object);
uni.navigateBack();
A页面接收参数:
onShow(object){
if(!!object){
console.log(object)
}
}

方法2:A页面自定义方法接收参数
B页面传递:
var object={
sx1:"参数1",
sx2:"参数2",
}
prevPage.$vm.otherFun(object);//重点$vm
uni.navigateBack();
A页面接收参数:
otherFun(object){
if(!!object){
console.log(object)
}
}

继续阅读 »

假如从B页面返回A页面:
var pages = getCurrentPages();
var prevPage = pages[pages.length - 2]; //上一个页面
prevPage.setData({
mdata:1
})
经过测试,在uni.app中使用B页面使用setData设置A页面参数无法实现(应该是被更改为常量属性了)。
打印console.log(prevPage)前一页面对象可得:

方法1:我们可以使用A页面原有方法
onHide: ƒ ()
onLoad: ƒ ()
onReady: ƒ ()
onResize: ƒ ()
onRouteEnd: ƒ ()
onShow: ƒ ()
onUnload: ƒ ()
options
......等传递参数。
B页面传递:
var object={
sx1:"参数1",
sx2:"参数2",
}
prevPage.onShow(object);
uni.navigateBack();
A页面接收参数:
onShow(object){
if(!!object){
console.log(object)
}
}

方法2:A页面自定义方法接收参数
B页面传递:
var object={
sx1:"参数1",
sx2:"参数2",
}
prevPage.$vm.otherFun(object);//重点$vm
uni.navigateBack();
A页面接收参数:
otherFun(object){
if(!!object){
console.log(object)
}
}

收起阅读 »

UNI利用vue-cli安装的项目sass报错的问题

sass vue_cli uniapp

UNI利用vue-cli安装的项目sass报错的问题,可以手动修改sass-loader的版本为"sass-loader": "^7.3.0",;cli安装的是最新版的会报错SassError: Invalid argument(s): Unsupported output style "nested".

继续阅读 »

UNI利用vue-cli安装的项目sass报错的问题,可以手动修改sass-loader的版本为"sass-loader": "^7.3.0",;cli安装的是最新版的会报错SassError: Invalid argument(s): Unsupported output style "nested".

收起阅读 »

2020年最新vuejs实战开发抖音app【百度盘免费分享】

Vue


获取方法:

1/首先麻烦您再此贴下留言

2/联系qq2119521240

3/视频说明:https://pan.baidu.com/s/1m_SNUCi98W7kKLgUQUaKBA

继续阅读 »


获取方法:

1/首先麻烦您再此贴下留言

2/联系qq2119521240

3/视频说明:https://pan.baidu.com/s/1m_SNUCi98W7kKLgUQUaKBA

收起阅读 »

unipush个推通道和华为通道的详细图文说明(上)

unipush

详细图请下载附件,图太多了,就不一个一个传了。以下是摘要。
也不知道附件穿上没,如果下载不了,记得找我。

新建uniapp工程

生成keystore

制作自定义调试基座

生成图标

修改两处权限(离线打包之前)

配置unipush后台先配置才能打包

自定义基座运行,找到cid,并发送消息
运行,运行到手机或模拟器,运行基座选择,勾选自定义调试基座
基础的透传测试,没有问题

华为离线推送,离线推送无法收到

设备信息
华为Nova4
9.1.0.257
华为移动服务 4.0.0.331 管理空间 清理数据,重置推送服务 清空缓存 打开进入程序

uniapp程序已彻底退出

创建透传消息
intent:#Intent;action=android.intent.action.oppopush;launchFlags=0x14000000;component=io.yunhntech.push/io.dcloud.PandoraEntry;S.UP-OL-SU=true;S.title=ceshi0;S.content=654321;S.payload=test;end

得不到任何信息,如果把uniapp程序启动后就可以得到信息,但是显示的是走个推渠道。

补一个图这个要弄好啊才能发消息

最后解决了
https://note.youdao.com/ynoteshare1/index.html?id=ac2c52fe65c992fb59a4f8a21ad7f703&type=note
感谢个推团队的对应,态度也好,还不收费。

有一句话就是,必须是经过的包的apk安装才可以,自定义基座不行!!!云打包,删除自定义基座的程序,安装apk,重启手机。

确保apk的程序没有运行。我这个居然运行了。。。。
然后熄灭屏幕,把手机放远点,还不要插电。

发个消息。

哔。。。。。。
好了,客户端和配置到此为止,下面还有服务器端,和小米等第三方厂商的配置。

我跟你们讲,我都不敢多试,我怕不好使,不说了,再试试。

继续阅读 »

详细图请下载附件,图太多了,就不一个一个传了。以下是摘要。
也不知道附件穿上没,如果下载不了,记得找我。

新建uniapp工程

生成keystore

制作自定义调试基座

生成图标

修改两处权限(离线打包之前)

配置unipush后台先配置才能打包

自定义基座运行,找到cid,并发送消息
运行,运行到手机或模拟器,运行基座选择,勾选自定义调试基座
基础的透传测试,没有问题

华为离线推送,离线推送无法收到

设备信息
华为Nova4
9.1.0.257
华为移动服务 4.0.0.331 管理空间 清理数据,重置推送服务 清空缓存 打开进入程序

uniapp程序已彻底退出

创建透传消息
intent:#Intent;action=android.intent.action.oppopush;launchFlags=0x14000000;component=io.yunhntech.push/io.dcloud.PandoraEntry;S.UP-OL-SU=true;S.title=ceshi0;S.content=654321;S.payload=test;end

得不到任何信息,如果把uniapp程序启动后就可以得到信息,但是显示的是走个推渠道。

补一个图这个要弄好啊才能发消息

最后解决了
https://note.youdao.com/ynoteshare1/index.html?id=ac2c52fe65c992fb59a4f8a21ad7f703&type=note
感谢个推团队的对应,态度也好,还不收费。

有一句话就是,必须是经过的包的apk安装才可以,自定义基座不行!!!云打包,删除自定义基座的程序,安装apk,重启手机。

确保apk的程序没有运行。我这个居然运行了。。。。
然后熄灭屏幕,把手机放远点,还不要插电。

发个消息。

哔。。。。。。
好了,客户端和配置到此为止,下面还有服务器端,和小米等第三方厂商的配置。

我跟你们讲,我都不敢多试,我怕不好使,不说了,再试试。

收起阅读 »

uniapp+thinkphp6实战开发【简书】app+小程序

uniapp 教程

这个课程我买了确实不错,有前端开发和后台开发,讲解非常细致
关键是参加完活动基本就不用花钱了
而且在这个贴子下留言的还能多省20
uniapp+thinkphp6实战开发【简书】app+小程序

继续阅读 »

这个课程我买了确实不错,有前端开发和后台开发,讲解非常细致
关键是参加完活动基本就不用花钱了
而且在这个贴子下留言的还能多省20
uniapp+thinkphp6实战开发【简书】app+小程序

收起阅读 »

nvue国际化的一个方案(借助i18n)

关于uni-app的国际化 ,我是看的这位前辈的分享

国际化多语言

我看评论里 有关nvue使用国家化插件(i18n)存在各项问题;并且搜了下社区有一位前辈已经给了一个方案

nvue国际化

在这里 贴一下自己研究的一个投机取巧的方案,希望能帮到各位:

  • 就是依赖官方提供的globalData,做一个过渡就可以了;
export default {  
        globalData: {  
            http: '',  
            _i18n: '',  
            $t: ''  
        },  
        onLaunch: function() {  
            let context = this;  
            this.globalData.http = this.$http  //这是我适用nvue的网络请求  
            this.globalData._i18n = this.$i18n  //这是原型链上的$i18n  
            this.globalData.$t = function(str) {  
                let $i18n = getApp().globalData.$i18n//这里去拿global的i18n  
                return context.$t(str)  
            }  
               }  

           }

这是在nvue页使用

         computed: {  
            i18n(){  
                return getApp().globalData.$t('cn')//当然页面中就是按Vue页面里那样使用了  
            }  
        }  

就这样,我在ios模拟器上测试正常,其他应该也是可以的;

继续阅读 »

关于uni-app的国际化 ,我是看的这位前辈的分享

国际化多语言

我看评论里 有关nvue使用国家化插件(i18n)存在各项问题;并且搜了下社区有一位前辈已经给了一个方案

nvue国际化

在这里 贴一下自己研究的一个投机取巧的方案,希望能帮到各位:

  • 就是依赖官方提供的globalData,做一个过渡就可以了;
export default {  
        globalData: {  
            http: '',  
            _i18n: '',  
            $t: ''  
        },  
        onLaunch: function() {  
            let context = this;  
            this.globalData.http = this.$http  //这是我适用nvue的网络请求  
            this.globalData._i18n = this.$i18n  //这是原型链上的$i18n  
            this.globalData.$t = function(str) {  
                let $i18n = getApp().globalData.$i18n//这里去拿global的i18n  
                return context.$t(str)  
            }  
               }  

           }

这是在nvue页使用

         computed: {  
            i18n(){  
                return getApp().globalData.$t('cn')//当然页面中就是按Vue页面里那样使用了  
            }  
        }  

就这样,我在ios模拟器上测试正常,其他应该也是可以的;

收起阅读 »

#插件需求# uniapp APP端生成快捷方式

苹果 安卓 移动APP 快捷方式

uniapp APP端生成快捷方式,生成桌面快捷方式点击直接进入指定页面。类似于支付宝乘车码快捷方式。
有没有大神或官方搞一下手机端快捷方式问题

uniapp APP端生成快捷方式,生成桌面快捷方式点击直接进入指定页面。类似于支付宝乘车码快捷方式。
有没有大神或官方搞一下手机端快捷方式问题

hbuilderX 编辑出错

11:50:44.154 请注意运行模式下,因日志输出、sourcemap以及未压缩源码等原因,性能和包体积,均不及发行模式。若要正式发布,请点击发行菜单或使用cli发布命令进行发布
11:50:44.163 正在编译中...
11:51:05.089 Module build failed (from ./node_modules/@dcloudio/webpack-uni-mp-loader/lib/script.js):
11:51:05.090 TypeError: Cannot read property 'replace' of undefined
11:51:05.098 at cached (/Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/uni-cli-shared/lib/util.js:60:14)
11:51:05.099 at cachedFn (/Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/uni-cli-shared/lib/util.js:43:33)
11:51:05.108 at resolve.call.then.resolved (/Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/script-new.js:96:41)
11:51:05.109 at <anonymous>
11:51:05.374 ERROR Build failed with errors.

继续阅读 »

11:50:44.154 请注意运行模式下,因日志输出、sourcemap以及未压缩源码等原因,性能和包体积,均不及发行模式。若要正式发布,请点击发行菜单或使用cli发布命令进行发布
11:50:44.163 正在编译中...
11:51:05.089 Module build failed (from ./node_modules/@dcloudio/webpack-uni-mp-loader/lib/script.js):
11:51:05.090 TypeError: Cannot read property 'replace' of undefined
11:51:05.098 at cached (/Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/uni-cli-shared/lib/util.js:60:14)
11:51:05.099 at cachedFn (/Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/uni-cli-shared/lib/util.js:43:33)
11:51:05.108 at resolve.call.then.resolved (/Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/script-new.js:96:41)
11:51:05.109 at <anonymous>
11:51:05.374 ERROR Build failed with errors.

收起阅读 »

众多抗疫开源项目案例; uni-AD发布,广告收益大幅提升; uniCloud,用js搞定服务端开发;uni统计月活10亿;HBuilderX 2.7发布插件开发API,下线非v3编译器

公告

uni-app助力疫情抗灾

面对凶猛疫情,DCloud在大年初四,发起了新冠防疫开源项目,https://gitee.com/dcloud/xinguan2020

该项目获得开发者的积极响应,数千人加入了开发QQ群(群号:797192690)。

众多合作伙伴宣传报道了本项目:

全国各地数百家单位通过uni-app快速上线了抗疫项目,详见案例汇总:xinguan2020.dcloud.net.cn

HBuilderX 2.7发布

  • 新增插件API系统,让开发者可以更灵活的打造自己满意的趁手工具,插件API文档见:https://hx.dcloud.net.cn/
  • 调整Android平台云端打包时默认不再包含 x86 CPU类型库,减少apk包体积,如需支持运行到模拟器请手动添加x86支持,详情参考: https://ask.dcloud.net.cn/article/36195

uni-app的App端非v3编译器(即自定义组件编译模式)已于HBuilderX 2.7下线

详见:https://ask.dcloud.net.cn/article/36988
注意: 如果项目仍然使用非V3框架,可以离线打包,如果使用云打包则需要使用HBuilderX 2.6.16。

Appstore公告和澄清

  • 谣言:Appstore从2020年3月起不再允许html5应用上线Appstore。目前DCloud开发者App仍然正常上架。详见:https://ask.dcloud.net.cn/article/36654
  • 谣言:Appstore从2020年4月起强制要求暗黑模式和ipad分屏,否则无法上架。详见:https://ask.dcloud.net.cn/article/37037
  • 属实:2020年4月起App Store将不再接受使用UIWebView的新App上架、2020年12月起将不再接受使用UIWebView的老App更新。
    HBuilderX2.6.6起,UIWebview从默认引擎中移除,在manifest中作为独立模块配置,新的App开发提交Appstore,请使用2.6.6以上版本。
  • 属实:Appstore从2020年6月30日起,App启动splash不再支持静态图片,必须使用storyboard。如果你没在manifest里配置静态图,则不受影响。如果需要配图片,需要等待HBuilderX发布更新解决,官方会在Apple要求前提供新版本。同时开发者也可以去掉splash静态图片。

七剑下天山!HBuilderX 2.6 众多大招来袭

第一剑 uniCloud

一句话描述:云开发,js编写后端代码

  • 对于程序员,从此你又get一个新技能,用熟悉的js,轻松搞定前后台整体业务。
  • 对于开发商:
    • 开发成本大幅下降。不用再雇佣php或java等服务器工程师,每年至少节省几十万;
    • 你只需专注于你的业务,其他什么服务器运维、弹性扩容、防DDoS攻击,全都不需要操心;

uniCloud有什么特点:

  • 全端云开发
    微信、支付宝、百度小程序,都上线了云开发,但无法跨端。
    uniCloud支持所有端,App、Web、各家小程序,一套代码搞定全端。
  • Serverless模式
    再也不用购买云主机、不用安装配置环境、不用处理双机热备负载均衡、不用处理扩容、不用操心DDoS攻击
    你只管用js写你的逻辑,其他都由云服务厂商搞定
  • 便宜
    首先节省了雇佣专职服务器工程师的成本
    其次uniCloud的租用费用也低于传统云主机的租用
    最后,目前uniCloud处于公测期间,一切云资源全部免费!服务器、存储、数据库都免费!

在新冠肺炎期间,各地火速上线抗疫项目,“uni-app+uniCloud”成为神兵利器,服务数百机构、上千万民众,为抗疫做出巨大贡献,详见新冠案例汇总:xinguan2020.dcloud.net.cn/

戳此链接查阅uniCloud官方文档

第二剑 uni-AD 广告联盟

DCloud帮助开发者省钱,更帮助开发者赚钱。
现在风险投资环境严峻,很多应用无法健康生存和发展。DCloud急开发者之所急,提供最佳变现助力,推动开发者生态健康发展。

uni-AD的特点:

  • 开发一次,App、小程序等多端均有广告(H5端广告很快也会上线)
  • 聚合腾讯广点通、头条穿山甲、360广告联盟等众多高收益广告源
  • 开屏、banner、信息流、激励视频各种广告形式全都有
  • 动态分配,自动择高价展示,大幅提高广告位填充率、降低广告重复率
  • 引擎底层原生支持,避免双开屏、开屏不及时、原生广告和webview内容混排错误等诸多问题

还有更好的变现平台吗?没有了。
激励视频的单位点击高达2元。这意味着开发者甚至可以围绕uni-AD全新开发或重构自己的应用,与手机用户共享高收益,比如看广告送积分或现金,在获客和变现上走出新的道路。

戳开uni-AD官网,赶快开通uni-AD变现!

第三剑 HBuilderX的内部资源管理器

一句话描述:编辑器和资源管理器合体了

传统开发工具,仅仅依靠左侧小小的项目树来管理资源文件,便利性和效率是远远不够的。
HBuilderX内置的资源管理器,给你一个更大的资源管理界面,大幅提高文件的管理效率。

特点:

  • 更大、更漂亮

  • 为开发者订做的资源管理器

    • 直接显示html标题、vue页面、组件的名字
    • 预览markdown内容
    • svn/git单独列显示

戳此了解内置资源管理器的更多功能

第四剑 easycom

传统vue组件,需要安装、引用、注册,三个步骤后才能使用组件。easycom将其精简为一步。
只要组件安装在项目的components目录下,并符合 components/组件名称/组件名称.vue 的目录结构。就可以不用引用、注册,直接在页面中使用。

<template>  
    <view class="container">  
        <uni-list>  
            <uni-list-item title="第一行"></uni-list-item>  
            <uni-list-item title="第二行"></uni-list-item>  
        </uni-list>  
    </view>  
</template>  
<script>  
    // 这里不用import引入,也不需要在components内注册uni-list组件。template里就可以直接用  
    export default {  
        data() {  
            return {  

            }  
        }  
    }  
</script>

不管components目录下安装了多少组件,easycom打包后会自动剔除没有使用的组件,对组件库的使用尤为友好。

组件库批量安装,随意使用,自动按需打包。以官方的uni-ui为例,在HBuilderX新建项目界面选择uni-ui项目模板,只需在页面中敲u,拉出大量组件代码块,直接选择,即可使用。大幅提升开发效率,降低使用门槛。

戳此查看easycom的文档

第五剑 renderjs

一句话描述:renderjs是一个运行在视图层的js。
它打开一个潘多拉魔盒。

  • 大幅降低逻辑层和视图层的通讯损耗,提供高性能视图交互能力
    逻辑层和视图层分离有很多好处,但也有一个副作用是在造成了两层之间通信阻塞。尤其是小程序和App的Android端阻塞问题影响了高性能应用的制作。
    微信小程序推出了wxs缓解此问题。
    uni-app兼容wxs,并且在App和H5端也实现了wxs。但微信定义的wxs限制太多,还是有很多高性能需求无法满足。
    于是renderjs诞生。
    renderjs只有App和H5支持,但它可以极大的提升通信效率。
    来看个基于renderjs的示例,App端流畅的canvas动画,超过了微信小程序的性能。

hello uni-app示例中可真实体验,对比App端和小程序端的性能差异。下图是App端录屏gif。

  • 在视图层操作dom,运行for web的js库
    官方不建议在uni-app里操作dom,但如果你不开发小程序,想使用一些操作了dom、window的库,其实可以使用renderjs来解决。
    在app-vue环境下,视图层由webview渲染,而renderjs运行在视图层,自然可以操作dom和window。
    这是一个基于renderjs运行echart完整版的示例:renderjs版echart
    同理,f2、threejs等库都可以用了。

戳此查看renderjs的文档

第六剑 Android新增X5内核

x5浏览器内核,是腾讯推出的一个增强webview内核。
在uni-app中,当App使用vue页面时,视图层渲染在webview里,此时使用x5,可在安卓端解决如下问题:

  • rom自定义主题字体适配
    原生字体受rom的主题字体影响,而国内部分做的不够好的rom,其webview的字体却不受主题字体影响。
    当这类Android手机切换主题字体后,就会造成原生渲染部分和webview渲染部分字体不一致。
    如果app端使用nvue,不存在此问题。但如果使用vue,则只能弃用系统webview了。
    但在App里自带一个50M的webview不太现实,使用装机量巨大的腾讯x5内核是更优选择。
    有了x5,uni-app的vue页面,5+和wap2app的html页面,均可解决字体统一问题。
  • 低端机浏览器兼容性等问题
    在Android4.4、5.0等老手机上,系统webview版本较低,很多css无法支持。
    引入x5内核,可以使用较新的css语法(如粘性布局),抹平css的浏览器兼容性问题。(uni-app的js运行在独立的jscore里,原本也不存在浏览器兼容问题)

戳此查看配置x5的文档

第七剑 uni小程序sdk

一句话描述:原生App内嵌uni小程序sdk,快速实现小程序能力,或部分栏目实现动态化

  • 你的原生App也想构建小程序平台?
  • 你的原生App部分栏目希望动态化和跨平台?

那么uni小程序sdk正是你需要的。

  • 它能为你的App强化生态,给用户带来更多服务。
  • 它能提升你的App开发效率、发版效率,降低协作耦合

来看看集成效果:

戳此链接查阅uni小程序sdk官方文档


七剑下天山,不为杀人越货,只为给开发者相赠七把利器,请接剑!

uni-app V3版本发布,App端性能、功能大幅提升

阿里小程序IDE官方内嵌uni-app,为开发者提供多端开发服务

详见:https://ask.dcloud.net.cn/article/36485

DCloud帮Vue官网提供免费Vue视频教程:

详见:https://ask.dcloud.net.cn/article/36363

vue conf大会上DCloud CTO崔红保的演讲

uni-app的性能为什么高于微信原生开发和其他小程序框架?来看这个视频讲解框架底层的原理:
https://v.qq.com/x/page/r0886mn8v6l.html

继续阅读 »

uni-app助力疫情抗灾

面对凶猛疫情,DCloud在大年初四,发起了新冠防疫开源项目,https://gitee.com/dcloud/xinguan2020

该项目获得开发者的积极响应,数千人加入了开发QQ群(群号:797192690)。

众多合作伙伴宣传报道了本项目:

全国各地数百家单位通过uni-app快速上线了抗疫项目,详见案例汇总:xinguan2020.dcloud.net.cn

HBuilderX 2.7发布

  • 新增插件API系统,让开发者可以更灵活的打造自己满意的趁手工具,插件API文档见:https://hx.dcloud.net.cn/
  • 调整Android平台云端打包时默认不再包含 x86 CPU类型库,减少apk包体积,如需支持运行到模拟器请手动添加x86支持,详情参考: https://ask.dcloud.net.cn/article/36195

uni-app的App端非v3编译器(即自定义组件编译模式)已于HBuilderX 2.7下线

详见:https://ask.dcloud.net.cn/article/36988
注意: 如果项目仍然使用非V3框架,可以离线打包,如果使用云打包则需要使用HBuilderX 2.6.16。

Appstore公告和澄清

  • 谣言:Appstore从2020年3月起不再允许html5应用上线Appstore。目前DCloud开发者App仍然正常上架。详见:https://ask.dcloud.net.cn/article/36654
  • 谣言:Appstore从2020年4月起强制要求暗黑模式和ipad分屏,否则无法上架。详见:https://ask.dcloud.net.cn/article/37037
  • 属实:2020年4月起App Store将不再接受使用UIWebView的新App上架、2020年12月起将不再接受使用UIWebView的老App更新。
    HBuilderX2.6.6起,UIWebview从默认引擎中移除,在manifest中作为独立模块配置,新的App开发提交Appstore,请使用2.6.6以上版本。
  • 属实:Appstore从2020年6月30日起,App启动splash不再支持静态图片,必须使用storyboard。如果你没在manifest里配置静态图,则不受影响。如果需要配图片,需要等待HBuilderX发布更新解决,官方会在Apple要求前提供新版本。同时开发者也可以去掉splash静态图片。

七剑下天山!HBuilderX 2.6 众多大招来袭

第一剑 uniCloud

一句话描述:云开发,js编写后端代码

  • 对于程序员,从此你又get一个新技能,用熟悉的js,轻松搞定前后台整体业务。
  • 对于开发商:
    • 开发成本大幅下降。不用再雇佣php或java等服务器工程师,每年至少节省几十万;
    • 你只需专注于你的业务,其他什么服务器运维、弹性扩容、防DDoS攻击,全都不需要操心;

uniCloud有什么特点:

  • 全端云开发
    微信、支付宝、百度小程序,都上线了云开发,但无法跨端。
    uniCloud支持所有端,App、Web、各家小程序,一套代码搞定全端。
  • Serverless模式
    再也不用购买云主机、不用安装配置环境、不用处理双机热备负载均衡、不用处理扩容、不用操心DDoS攻击
    你只管用js写你的逻辑,其他都由云服务厂商搞定
  • 便宜
    首先节省了雇佣专职服务器工程师的成本
    其次uniCloud的租用费用也低于传统云主机的租用
    最后,目前uniCloud处于公测期间,一切云资源全部免费!服务器、存储、数据库都免费!

在新冠肺炎期间,各地火速上线抗疫项目,“uni-app+uniCloud”成为神兵利器,服务数百机构、上千万民众,为抗疫做出巨大贡献,详见新冠案例汇总:xinguan2020.dcloud.net.cn/

戳此链接查阅uniCloud官方文档

第二剑 uni-AD 广告联盟

DCloud帮助开发者省钱,更帮助开发者赚钱。
现在风险投资环境严峻,很多应用无法健康生存和发展。DCloud急开发者之所急,提供最佳变现助力,推动开发者生态健康发展。

uni-AD的特点:

  • 开发一次,App、小程序等多端均有广告(H5端广告很快也会上线)
  • 聚合腾讯广点通、头条穿山甲、360广告联盟等众多高收益广告源
  • 开屏、banner、信息流、激励视频各种广告形式全都有
  • 动态分配,自动择高价展示,大幅提高广告位填充率、降低广告重复率
  • 引擎底层原生支持,避免双开屏、开屏不及时、原生广告和webview内容混排错误等诸多问题

还有更好的变现平台吗?没有了。
激励视频的单位点击高达2元。这意味着开发者甚至可以围绕uni-AD全新开发或重构自己的应用,与手机用户共享高收益,比如看广告送积分或现金,在获客和变现上走出新的道路。

戳开uni-AD官网,赶快开通uni-AD变现!

第三剑 HBuilderX的内部资源管理器

一句话描述:编辑器和资源管理器合体了

传统开发工具,仅仅依靠左侧小小的项目树来管理资源文件,便利性和效率是远远不够的。
HBuilderX内置的资源管理器,给你一个更大的资源管理界面,大幅提高文件的管理效率。

特点:

  • 更大、更漂亮

  • 为开发者订做的资源管理器

    • 直接显示html标题、vue页面、组件的名字
    • 预览markdown内容
    • svn/git单独列显示

戳此了解内置资源管理器的更多功能

第四剑 easycom

传统vue组件,需要安装、引用、注册,三个步骤后才能使用组件。easycom将其精简为一步。
只要组件安装在项目的components目录下,并符合 components/组件名称/组件名称.vue 的目录结构。就可以不用引用、注册,直接在页面中使用。

<template>  
    <view class="container">  
        <uni-list>  
            <uni-list-item title="第一行"></uni-list-item>  
            <uni-list-item title="第二行"></uni-list-item>  
        </uni-list>  
    </view>  
</template>  
<script>  
    // 这里不用import引入,也不需要在components内注册uni-list组件。template里就可以直接用  
    export default {  
        data() {  
            return {  

            }  
        }  
    }  
</script>

不管components目录下安装了多少组件,easycom打包后会自动剔除没有使用的组件,对组件库的使用尤为友好。

组件库批量安装,随意使用,自动按需打包。以官方的uni-ui为例,在HBuilderX新建项目界面选择uni-ui项目模板,只需在页面中敲u,拉出大量组件代码块,直接选择,即可使用。大幅提升开发效率,降低使用门槛。

戳此查看easycom的文档

第五剑 renderjs

一句话描述:renderjs是一个运行在视图层的js。
它打开一个潘多拉魔盒。

  • 大幅降低逻辑层和视图层的通讯损耗,提供高性能视图交互能力
    逻辑层和视图层分离有很多好处,但也有一个副作用是在造成了两层之间通信阻塞。尤其是小程序和App的Android端阻塞问题影响了高性能应用的制作。
    微信小程序推出了wxs缓解此问题。
    uni-app兼容wxs,并且在App和H5端也实现了wxs。但微信定义的wxs限制太多,还是有很多高性能需求无法满足。
    于是renderjs诞生。
    renderjs只有App和H5支持,但它可以极大的提升通信效率。
    来看个基于renderjs的示例,App端流畅的canvas动画,超过了微信小程序的性能。

hello uni-app示例中可真实体验,对比App端和小程序端的性能差异。下图是App端录屏gif。

  • 在视图层操作dom,运行for web的js库
    官方不建议在uni-app里操作dom,但如果你不开发小程序,想使用一些操作了dom、window的库,其实可以使用renderjs来解决。
    在app-vue环境下,视图层由webview渲染,而renderjs运行在视图层,自然可以操作dom和window。
    这是一个基于renderjs运行echart完整版的示例:renderjs版echart
    同理,f2、threejs等库都可以用了。

戳此查看renderjs的文档

第六剑 Android新增X5内核

x5浏览器内核,是腾讯推出的一个增强webview内核。
在uni-app中,当App使用vue页面时,视图层渲染在webview里,此时使用x5,可在安卓端解决如下问题:

  • rom自定义主题字体适配
    原生字体受rom的主题字体影响,而国内部分做的不够好的rom,其webview的字体却不受主题字体影响。
    当这类Android手机切换主题字体后,就会造成原生渲染部分和webview渲染部分字体不一致。
    如果app端使用nvue,不存在此问题。但如果使用vue,则只能弃用系统webview了。
    但在App里自带一个50M的webview不太现实,使用装机量巨大的腾讯x5内核是更优选择。
    有了x5,uni-app的vue页面,5+和wap2app的html页面,均可解决字体统一问题。
  • 低端机浏览器兼容性等问题
    在Android4.4、5.0等老手机上,系统webview版本较低,很多css无法支持。
    引入x5内核,可以使用较新的css语法(如粘性布局),抹平css的浏览器兼容性问题。(uni-app的js运行在独立的jscore里,原本也不存在浏览器兼容问题)

戳此查看配置x5的文档

第七剑 uni小程序sdk

一句话描述:原生App内嵌uni小程序sdk,快速实现小程序能力,或部分栏目实现动态化

  • 你的原生App也想构建小程序平台?
  • 你的原生App部分栏目希望动态化和跨平台?

那么uni小程序sdk正是你需要的。

  • 它能为你的App强化生态,给用户带来更多服务。
  • 它能提升你的App开发效率、发版效率,降低协作耦合

来看看集成效果:

戳此链接查阅uni小程序sdk官方文档


七剑下天山,不为杀人越货,只为给开发者相赠七把利器,请接剑!

uni-app V3版本发布,App端性能、功能大幅提升

阿里小程序IDE官方内嵌uni-app,为开发者提供多端开发服务

详见:https://ask.dcloud.net.cn/article/36485

DCloud帮Vue官网提供免费Vue视频教程:

详见:https://ask.dcloud.net.cn/article/36363

vue conf大会上DCloud CTO崔红保的演讲

uni-app的性能为什么高于微信原生开发和其他小程序框架?来看这个视频讲解框架底层的原理:
https://v.qq.com/x/page/r0886mn8v6l.html

收起阅读 »

plus.push.createMessage无法创建本地通知的解决

plus.push.createMessage可以创建本地通知,但是有时候我们的app不需要什么后台推送,也不需要什么永驻后台,不需要unipush,只需要在获取到一个信息的时候生成一条本地通知提示用户,那么需要在manifest.json中这样配置
1、


2、

3、

4、

appid和appkey。。。随便填。如果真的需要推送,那么就按照官方的手册,老老实实的配置unipush就可以

继续阅读 »

plus.push.createMessage可以创建本地通知,但是有时候我们的app不需要什么后台推送,也不需要什么永驻后台,不需要unipush,只需要在获取到一个信息的时候生成一条本地通知提示用户,那么需要在manifest.json中这样配置
1、


2、

3、

4、

appid和appkey。。。随便填。如果真的需要推送,那么就按照官方的手册,老老实实的配置unipush就可以

收起阅读 »