HBuilderX

HBuilderX

极客开发工具
uni-app

uni-app

开发一次,多端覆盖
uniCloud

uniCloud

云开发平台
HTML5+

HTML5+

增强HTML5的功能体验
MUI

MUI

上万Star的前端框架

live-pusher开启补光灯

闪光灯 live_pusher

this.livePusher.toggleTorch()

this.livePusher.toggleTorch()

免费帮忙开发 安卓 ios 原生插件,刚学完练练手,有需要的留言(太难的就算了)

uniapp原生插件

免费开发安卓 ios 原生插件,刚学完练练手,有需要的留言(太难的就算了)

免费开发安卓 ios 原生插件,刚学完练练手,有需要的留言(太难的就算了)

nvue canvas踩坑经历

Webview canvas GCanvas nvue uniapp

总结就是:用到绘制海报类似的地方(drawImage)不要用nvue。

  1. nvue 不支持普通的canvas api绘制。
  2. 然后找到了gcanvas这个东西,在iOS上还行,可以用。
  3. 然后到Android上一测,拉垮了。报错:exception function:gcanvas setBackGround for android view, exception:WX_REND大概原因就是gcanvas在安卓上绘制图像很容易各种问题,gcanvas是个第三方团队产品,uniapp官方在社区也曾说不推荐使用gcanvas。确实支持度不好。
  4. 没办法,gcanvas不能用在安卓上,只能再看看其他办法。然后采用了nvue+webview的方案,nvue使用webview加载hybrid本地html,准备用web canvas来绘制,一通操作猛如虎,嗯,安卓上能正常了
  5. 然后到iOS上一看,又拉跨了,canvas.toDataURL时报错了:the operation is insecure。翻译一下就是资源跨域问题。还奇怪呢,本地html引用的都是相对路径的本地资源,咋还会跨域,一通查一通找,发现了官方给出的解释:wkwebview环境本地资源也算跨域。好吧,没办法,那继续看看有没有办法解决吧。后面在社区里看了下发现有两种办法 1.plus.io 相关api读取为本地路径。2.本地资源转成base64。一通操作一通调试后没走通,大概原因就是1.nvue webview环境下,不能用plus api。2.本地资源转base64,大概方法也是走的原生xhr或者plus转换,但是原生xhr还有canvas.toDataURL在这种情况都是有跨域问题,plus同原因1一样,也没有支持。
  6. 最后,不纠结了,掉头吧。然后页面转为vue文件渲染。然后就ok了。

nvue这个东西官方也不维护了,虽然确实性能比vue强,但真不适合用纯nvue来做项目,巨多坑。还是见仁见智吧,合适场景下vue+nvue结合使用。

nvue+vue画布绘制并导出图片的解决方案【插件】

继续阅读 »

总结就是:用到绘制海报类似的地方(drawImage)不要用nvue。

  1. nvue 不支持普通的canvas api绘制。
  2. 然后找到了gcanvas这个东西,在iOS上还行,可以用。
  3. 然后到Android上一测,拉垮了。报错:exception function:gcanvas setBackGround for android view, exception:WX_REND大概原因就是gcanvas在安卓上绘制图像很容易各种问题,gcanvas是个第三方团队产品,uniapp官方在社区也曾说不推荐使用gcanvas。确实支持度不好。
  4. 没办法,gcanvas不能用在安卓上,只能再看看其他办法。然后采用了nvue+webview的方案,nvue使用webview加载hybrid本地html,准备用web canvas来绘制,一通操作猛如虎,嗯,安卓上能正常了
  5. 然后到iOS上一看,又拉跨了,canvas.toDataURL时报错了:the operation is insecure。翻译一下就是资源跨域问题。还奇怪呢,本地html引用的都是相对路径的本地资源,咋还会跨域,一通查一通找,发现了官方给出的解释:wkwebview环境本地资源也算跨域。好吧,没办法,那继续看看有没有办法解决吧。后面在社区里看了下发现有两种办法 1.plus.io 相关api读取为本地路径。2.本地资源转成base64。一通操作一通调试后没走通,大概原因就是1.nvue webview环境下,不能用plus api。2.本地资源转base64,大概方法也是走的原生xhr或者plus转换,但是原生xhr还有canvas.toDataURL在这种情况都是有跨域问题,plus同原因1一样,也没有支持。
  6. 最后,不纠结了,掉头吧。然后页面转为vue文件渲染。然后就ok了。

nvue这个东西官方也不维护了,虽然确实性能比vue强,但真不适合用纯nvue来做项目,巨多坑。还是见仁见智吧,合适场景下vue+nvue结合使用。

nvue+vue画布绘制并导出图片的解决方案【插件】

收起阅读 »

无意中找到nvue国际化场景下每个nvue页面都需要引入VueI18n的解决方案

国际化 nvue
// nvue 目前的国际化方案需要在每个页面单独引入uni-i18n,后续框架会抹平差异,抹平差异后和 vue 页面一样只需要在 main.js 中引入  
<script>  
  import {  
    initVueI18n  
  } from '@dcloudio/uni-i18n'  

  // const messages = {} 此处内容省略,和 vue 全局引入的写法一致  

  const { t } = initVueI18n(messages)  

  export default {  
    data() {  
      return {  
      }  
    }  
  }  
</script>  

这是官网推荐的方案,需要在每个nvue都有这段代码

今天发现我们其实可以在app.vue的onLaunch中把t挂载到uni下,类似 uni.$locale = t去挂载,然后在nvue页面内直接使用 uni.$locale('common.edit')

下面是app.vue的示例代码

<script>  
    import {  
        initVueI18n  
    } from '@dcloudio/uni-i18n';  
    import messages from '@/locale';  
    const {  
        t  
    } = initVueI18n(messages);  
    export default {  
        onLaunch: function() {  
            console.log('App Launch')  
            uni.$locale = t  
            uni.$language = uni.getLocale()  
        },  
        onShow: function() {  
            console.log('App Show')  
        },  
        onHide: function() {  
            console.log('App Hide')  
        },  
    }  
</script>  

<style lang="scss">  
</style>
继续阅读 »
// nvue 目前的国际化方案需要在每个页面单独引入uni-i18n,后续框架会抹平差异,抹平差异后和 vue 页面一样只需要在 main.js 中引入  
<script>  
  import {  
    initVueI18n  
  } from '@dcloudio/uni-i18n'  

  // const messages = {} 此处内容省略,和 vue 全局引入的写法一致  

  const { t } = initVueI18n(messages)  

  export default {  
    data() {  
      return {  
      }  
    }  
  }  
</script>  

这是官网推荐的方案,需要在每个nvue都有这段代码

今天发现我们其实可以在app.vue的onLaunch中把t挂载到uni下,类似 uni.$locale = t去挂载,然后在nvue页面内直接使用 uni.$locale('common.edit')

下面是app.vue的示例代码

<script>  
    import {  
        initVueI18n  
    } from '@dcloudio/uni-i18n';  
    import messages from '@/locale';  
    const {  
        t  
    } = initVueI18n(messages);  
    export default {  
        onLaunch: function() {  
            console.log('App Launch')  
            uni.$locale = t  
            uni.$language = uni.getLocale()  
        },  
        onShow: function() {  
            console.log('App Show')  
        },  
        onHide: function() {  
            console.log('App Hide')  
        },  
    }  
</script>  

<style lang="scss">  
</style>
收起阅读 »

要用的来复制粘贴吧!对于 luanqing-popup-dialog 这个 nvue 气泡菜单组件的修改

要用的来复制粘贴吧!对于 luanqing-popup-dialog 这个 nvue 气泡菜单组件的修改

  • 因为插件市场上太乱了,很多组件都存在问题,这次用了一个 luanqing-popup-dialog 组件也是不能直接使用的,所以进行了魔改,现在能够直接使用了,自己用太无聊了,暂时不想发什么插件市场了,直接复制粘贴出来给大家用吧,以后有空了我再发插件市场

无论是 vue还是nvue 可以直接使用,严格遵循了 nvue 的写法,nvue写法是完全可以向下vue兼容的,所以直接放心用吧

效果图

截图url:https://upload-images.jianshu.io/upload_images/10916716-c850836fdd143e5a.png

  • 源码直接看附件吧,这里放在代码段里预览出来效果乱七八糟的

  • 效果截图图片不知为啥uniapp文章里显示不出来,直接点击链接自己看吧

  • popup-menu.vue

继续阅读 »

要用的来复制粘贴吧!对于 luanqing-popup-dialog 这个 nvue 气泡菜单组件的修改

  • 因为插件市场上太乱了,很多组件都存在问题,这次用了一个 luanqing-popup-dialog 组件也是不能直接使用的,所以进行了魔改,现在能够直接使用了,自己用太无聊了,暂时不想发什么插件市场了,直接复制粘贴出来给大家用吧,以后有空了我再发插件市场

无论是 vue还是nvue 可以直接使用,严格遵循了 nvue 的写法,nvue写法是完全可以向下vue兼容的,所以直接放心用吧

效果图

截图url:https://upload-images.jianshu.io/upload_images/10916716-c850836fdd143e5a.png

  • 源码直接看附件吧,这里放在代码段里预览出来效果乱七八糟的

  • 效果截图图片不知为啥uniapp文章里显示不出来,直接点击链接自己看吧

  • popup-menu.vue

收起阅读 »

调试模式提示Uncaught SyntaxError: Unexpected token ?解决经验分享

nvue

全局搜索??运算符,使用||替代??运算符,或更改为其他方式进行运算

全局搜索??运算符,使用||替代??运算符,或更改为其他方式进行运算

uni-app中nvue如何隐藏滚动条

去掉滚动条

之前以为在uniapp中使用滚动只能用scroll-view 后面发现nvue可以使用scroller组件来代替 scroll-view

具体参数uniapp官方 没用,得参考weex文档。

以下是使用代码

        <scroller class="scroll-view" scroll-direction="horizontal" :show-scrollbar="false">  
            <fui-data-tag :options="options" :radius="16" activeBgColor="#226ADC" border-color="#226ADC" active-color="#fff"></fui-data-tag>  
        </scroller>
继续阅读 »

之前以为在uniapp中使用滚动只能用scroll-view 后面发现nvue可以使用scroller组件来代替 scroll-view

具体参数uniapp官方 没用,得参考weex文档。

以下是使用代码

        <scroller class="scroll-view" scroll-direction="horizontal" :show-scrollbar="false">  
            <fui-data-tag :options="options" :radius="16" activeBgColor="#226ADC" border-color="#226ADC" active-color="#fff"></fui-data-tag>  
        </scroller>
收起阅读 »

纯nvue模式下App.vue方法调用

nvue

随着nvue组件越来越多,开始将项目从uniapp模式移植到纯nvue模式,发现在纯nvue模式下App.vue methods中的方法在未初始化完成时无法在onLaunch进行调用。
只需使用setTimeout包住,即可在onLaunch中直接调用methods中的方法。

setTimeout(() => {  
this.checkRuntimeEnv()  
}, 0)
继续阅读 »

随着nvue组件越来越多,开始将项目从uniapp模式移植到纯nvue模式,发现在纯nvue模式下App.vue methods中的方法在未初始化完成时无法在onLaunch进行调用。
只需使用setTimeout包住,即可在onLaunch中直接调用methods中的方法。

setTimeout(() => {  
this.checkRuntimeEnv()  
}, 0)
收起阅读 »

喜大普奔,nvue项目全局浮窗功能已实现,非原生插件方案,可实现贴边、跟手移动、全项目任意位置通过js显示、隐藏、销毁、创建

方法文档正在整理中,顺便谁能给我解决下我这个问题https://ask.dcloud.net.cn/question/164176

方法文档正在整理中,顺便谁能给我解决下我这个问题https://ask.dcloud.net.cn/question/164176

nvue中,uviewui字体图标ttf字体名iconfont与项目其他字体冲突,解决方法

使用软件修改了原字体文件全名,改成了uviewui_iconfont, 有需要的朋友拿去用吧。

我是在/uni_modules/uview-ui/components/u-icon/u-icon.vue中把引入url改成了我修改后的字体的base64,当然大家也可以自行将ttf上传自己的服务器后使用网络地址引用。

继续阅读 »

使用软件修改了原字体文件全名,改成了uviewui_iconfont, 有需要的朋友拿去用吧。

我是在/uni_modules/uview-ui/components/u-icon/u-icon.vue中把引入url改成了我修改后的字体的base64,当然大家也可以自行将ttf上传自己的服务器后使用网络地址引用。

收起阅读 »

原生子窗口这种垃圾玩意真的别用了,真他妈恶心人,bug一堆不解决,还好意思推荐使用

subnvue

原生子窗口这种垃圾玩意真的别用了,真他妈恶心人,bug一堆不解决,还好意思推荐使用

原生子窗口这种垃圾玩意真的别用了,真他妈恶心人,bug一堆不解决,还好意思推荐使用

weex2.0发布了吗,刚刚看到weex2.0代码已经开放了,并且出了文档页面

weex

https://weexapp.com/guide/introduction.html

https://weexapp.com/guide/introduction.html