最近做了一个HanziWriter的项目,这个插件是一个汉字笔画库,可以实现汉字笔画动画、书写等,非常强大,这里分享一下在uniapp中使用的一点心得。

HanziWriter官网有web端和微信小程序的版本,但是本人需要在uniapp中打包到安卓app使用,一时不知道怎么办,就把两种方法搬到uniapp项目试一试,千辛万苦调出来,显示的汉字基本都严重变型了,查了资料,估计是uniapp兼容性的原因,因为uniapp没有window这个东西,很多方法也没法使用,但是官方提供了一个renderjs,可以在视图层做一些js的事情,后来发现可以在这里做一些dom操作,于是就整了一些骚操作,下面给大家分享一下。

<template><!-- 在dom上绑定一个属性prop,change时触发characterWriter.initWriter,characterWriter是renderjs的模块名称 --><view :prop="data" :change:prop="characterWriter.initWriter":style="{width: size + 'px', height: size + 'px'}"><svg xmlns="http://www.w3.org/2000/svg" class="character-svg" :width="size" :height="size":character="character"></svg></view>
</template>

在合适的时候触发绑定属性的改变:

mounted() {this.data = {char: this.character,size: this.size,data: this.data,}
},

在vue文件中另起一个script标签作为renderjs模块,如下:

<script module="characterWriter" lang="renderjs">import {HanziWriter} from 'common/hanzi-writer.min.js';export default {data() {return {}},methods: {// 绑定属性变化时会自动调用initWriterinitWriter(newValue, oldValue, ownerVm, vm) {let dom = ownerVm.$el.getElementsByClassName('character-svg')[0];let size = newValue.size, half = size / 2;let writer= HanziWriter.create(dom, newValue.char, {width: size,height: size,padding: 10,strokeAnimationSpeed: 0.6,delayBetweenStrokes: 300,strokeColor: '#123283',delayBetweenLoops: 2000,charDataLoader: function(char, onComplete) {onComplete(JSON.parse(newValue.data));}});writer.loopCharacterAnimation();},}}
</script>

于是就这样,把web端的HanziWriter搬到了uniapp,打包到安卓app可以正常运行,其他平台没试过不知道效果怎么样,有需要的朋友可以试试。

uniapp在安卓端实现hanziWriter相关推荐

  1. 使用uni-app实现使用浏览器下载功能时,安卓端部分机型不兼容问题(小米/华为)

    在公司中使用 uni-app 进行移动端开发过程中涉及到检查更新功能的一些奇葩问题(主要是plus.runtime.openURL的使用)和大家进行分享一下. 文章目录 1. 实现检查更新用的方法 1 ...

  2. uniapp (IOS端安卓端)调用高德、百度、腾讯地图导航

    不仅适用于uniapp.vue以及微信小程序和普通手机h5应用都适用,亲测有效 直接上代码: // 点击某个地方,调起下面的方法// 方法要传入需要标注地点的纬度latitude,经度longitud ...

  3. 微信小程序android错误,app安卓端 跳转到微信小程序失败

    详细问题描述 (DCloud产品不会有明显的bug,所以你遇到的问题大都是在特定环境下才能重现的问题,请仔细描述你的环境和重现方式,否则DCloud很难排查解决你的问题) [内容] app安卓端跳转到 ...

  4. 安卓端微信H5下载文件处理:让微信自动弹起跳转外部浏览器窗口

    配套视频:https://www.bilibili.com/video/BV1oA411B7gv/ 背景 今天鼓捣了一下手机投屏到笔记本,就想录个视频展示一下学习成果,正好就想起了很早之前实现的这个功 ...

  5. uni-app打包安卓app如何接入极光推送(JG-JPush)?

    最近公司在做uni-app的跨端应用,其中在打包app时需要用到消息推送功能,经过一番摸索也是终于弄通并成功集成了第三方极光推送.话不多说,直接开撸: 一.我们需要用到的一些插件以及极光平台的官网链接 ...

  6. android 自定义键盘高度不对,NVUE 容器一旦设置了position且容器高度不能超过整屏,在安卓端就会被键盘遮挡...

    譬如WEEX的这个input的例子,如果把input删的不足以撑满整个界面,在安卓端,不会自动的整页往上浮动,导致input被键盘遮挡,这个问题应该怎么解决啊?IOS正常 http://dotwe.o ...

  7. html百度转到顶部 fixed,科技常识:完美解决安卓端百度浏览器屏蔽fixed悬浮元素的问题...

    今天小编跟大家讲解下有关完美解决安卓端百度浏览器屏蔽fixed悬浮元素的问题 ,相信小伙伴们对这个话题应该有所关注吧,小编也收集到了有关完美解决安卓端百度浏览器屏蔽fixed悬浮元素的问题 的相关资料 ...

  8. MobileIMSDK怎样修改Server端和安卓端TCP连接方式时报文的的限制大小

    场景 MobileIMSDK怎样修改服务端核心jar包的源码并替换掉Java服务端的jar包: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/de ...

  9. 云信小课堂|5分钟快速实现安卓端PK连麦场景

    Vol. 3 2021年开年,音频社交风靡互联网,语音社交再成风口,直播连麦开启社交新赛道.在实时通信技术不断革新的现状下,直播平台需要不断探索新的方式以满足用户日益增长的需求,直播连麦就是在此背景下 ...

最新文章

  1. 【NOI2016】循环之美【莫比乌斯反演】【整除分块】【杜教筛】【类杜教筛】
  2. 欢乐纪中A组赛【2019.8.10】
  3. oracle磁带库清洁带标签,磁带库、磁带机和介质支持
  4. java 正则表达式 逻辑符号
  5. 获取mysql系统时间
  6. Lync Server 2013 实战系列之五:标准版-定义拓扑生成器
  7. 什么是java中的监听器_java中什么是监听器
  8. mac电脑安装mysql
  9. 计算机在线应用竖式,‎App Store 上的“竖式计算器”
  10. 小米笔记本Pro14 黑苹果失败<经验>
  11. 使用darknet训练yoloV3
  12. 征文 | 青出于蓝而胜于蓝 国货之光GBase
  13. 接口动态签名,防止被人恶意调用
  14. 关于置信水平,求区间的简便算法
  15. Python爬虫入门【11】:半次元COS图爬取
  16. 使用数字证书配置IKEv2
  17. 微信公众号注册免费教程
  18. 月薪过万的运维工程师都要会干什么
  19. iOS最安全?细数iOS曝过的安全漏洞|苹果|iOS|漏洞
  20. node 安装(新)

热门文章

  1. 手机连接fiddler上网
  2. CQ40_519TX_XP_SP3系统声卡无声、显卡驱动安装方法
  3. emmc/sd驱动总线简析
  4. MatLab入门手册
  5. 如何用简单方法推导正弦函数的和角公式: sin(α+β)=sinαcosβ+cosαsinβ ?
  6. 应用comsol分析多分支缝压裂应力分布
  7. 【机器学习】聚类算法——DBSCAN算法(理论+图解)
  8. 制作浮雕效果等高线的原理与实践
  9. 拉普拉斯------拉普拉斯变换
  10. 打开pdf文件目录的方法