更新记录

1.0.5(2023-05-16)

  • 修复android部分情况下crash

1.0.4(2022-05-07)

  • 修改minSdkVersion为21,解决打包问题

1.0.3(2022-05-06)

  • 升级到最新sdk
  • 支持hiddenKeys、dynamicTexts、dynamicImages属性配置
查看更多

平台兼容性

Android Android CPU类型 iOS
适用版本区间:5.0 - 12.0 armeabi-v7a:未测试,arm64-v8a:未测试,x86:未测试 适用版本区间:9 - 16

原生插件通用使用流程:

  1. 购买插件,选择该插件绑定的项目。
  2. 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
  3. 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
  4. 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
  5. 开发完毕后正式云打包

付费原生插件目前不支持离线打包。
Android 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/android
iOS 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/ios

注意事项:使用HBuilderX2.7.14以下版本,如果同一插件且同一appid下购买并绑定了多个包名,提交云打包界面提示包名绑定不一致时,需要在HBuilderX项目中manifest.json->“App原生插件配置”->”云端插件“列表中删除该插件重新选择


使用文档 (更多插件及问题,请加微信:zhuzheVIP1)

温馨提示

由于有部分同学是原生小白,所以一定要仔细看这里。

  1. 使用原生插件进行测试,必须要自定义基座,请参考

  2. 自定义基座后,一定将运行基座 改为 自定义基座,否则一样无法使用原生插件

说明

此插件提供了 sn-svga-view 组件,仅 nvue 使用

测试svga下载

rose_2.0.0.svga

属性

属性 类型 默认值 说明
autoPlay boolean true 是否自动播放
fillMode enum Forward 取值:Backward/Forward/Clear; Forward 表示动画结束后,将停留在最后一帧。Backward 表示动画结束后,将停留在第一帧。Clear 表示播放完,清空画布
loopCount Number 0 设置动画的循环次数,0 表示无限循环
clearsAfterStop boolean true 当动画播放完成后,是否清空画布
source String 必填项,用于表示 svga 文件的路径,支持本地 url 和网络 url
hiddenKeys Array 选填项,用于隐藏指定key
dynamicTexts Map<String,{text:'',color:'#fff',size:28}> 选填项,动态配置文本,其中text支持简单的html
dynamicImages Map<String,String> 选填项,用于动态替换图片,只会本地和远程url, 比如:{'99':'/static/avatar/99.png'}

事件

  • load

    参数:

    • loading:如果等于 true,则表示正在加载中
    • success:如果等于 true,则表示加载完成;反之为加载失败
  • finish

    播放结束事件(loopCount!=0 生效)

    参数:

    • success: 如果等于 true,则表示播放完成;反之播放暂停

方法

  • start

    开始播放

    this.$refs.svga.start();
  • stop

    结束播放

    this.$refs.svga.stop();
  • play 继续播放

    this.$refs.svga.play();
  • pause

    暂停播放

    this.$refs.svga.pause();
  • stepToFrame

    跳到指定 frame,并暂停

    this.$refs.svga.stepToFrame(2);

使用

<template>
    <view style="flex:1;background-color: #0A98D5;">
        <button type="default" @click="play">play</button>
        <button type="default" @click="pause">pause</button>
        <button type="default" @click="sendGift">sendGift</button>
        <sn-svga-view
            ref="svga"
            :autoPlay="true"
            :dynamicTexts="dTexts"
            @load="load"
            @finish="finish"
            :loopCount="0"
            :clearsAfterStop="false"
            style="flex:1;background-color: red;"
            :source="source"
        />
    </view>
</template>

<script>
export default {
    data() {
        return {
            // source: '/static/rose_2.0.0.svga',
            source: '/static/kingset.svga',
            // source: 'https://snice.oss-cn-hangzhou.aliyuncs.com/svga/posche.svga',
            dTexts: {
                banner: {
                    color: 'white',
                    size: 28,
                    text: "<span><font color='yellow'>Pony</font> sends many flowers.</span>"
                }
            }
        };
    },
    methods: {
        play() {
            this.$refs.svga.play();
        },
        pause() {
            this.$refs.svga.pause();
        },
        load(e) {
            uni.showToast({
                icon: 'none',
                title: JSON.stringify(e.detail)
            });
        },
        sendGift() {
            this.$refs.svga.stop();
            this.source = '';
            this.$nextTick(() => {
                this.source = '/static/rose_2.0.0.svga';
            });
        },
        finish(e) {
            uni.showToast({
                icon: 'none',
                title: JSON.stringify(e.detail)
            });
        }
    }
};
</script>

<style></style>

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件不采集任何数据

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问