From cddf036e693a2084719e87afbc925dbe05e8544a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=9C=E5=BA=86=E6=B3=89?= Date: Fri, 24 May 2024 15:11:59 +0800 Subject: [PATCH] Update uts-component.md --- docs/plugin/uts-component.md | 89 +++++++++++++++--------------------- 1 file changed, 37 insertions(+), 52 deletions(-) diff --git a/docs/plugin/uts-component.md b/docs/plugin/uts-component.md index e40d4914..7f6c9fb6 100644 --- a/docs/plugin/uts-component.md +++ b/docs/plugin/uts-component.md @@ -1245,8 +1245,9 @@ iOS 平台需要将三方依赖库放到 组件目录下 app-ios/Frameworks 中 > Android ```ts + @@ -1257,7 +1258,6 @@ iOS 平台需要将三方依赖库放到 组件目录下 app-ios/Frameworks 中 import LottieAnimationView from 'com.airbnb.lottie.LottieAnimationView' import LottieDrawable from 'com.airbnb.lottie.LottieDrawable' import FileInputStream from 'java.io.FileInputStream' - import { UTSAndroid } from "io.dcloud.uts"; class CustomAnimListener extends Animator.AnimatorListener { @@ -1267,20 +1267,20 @@ iOS 平台需要将三方依赖库放到 组件目录下 app-ios/Frameworks 中 this.comp = com } - override onAnimationStart(animation: Animator | null) {} + override onAnimationStart(animation: Animator) {} - override onAnimationEnd(animation: Animator | null, isReverse: Boolean) { + override onAnimationEnd(animation: Animator, isReverse: Boolean) { this.comp.$emit("bindended") } - override onAnimationEnd(animation: Animator | null) {} + override onAnimationEnd(animation: Animator) {} - override onAnimationCancel(animation: Animator | null) {} + override onAnimationCancel(animation: Animator) {} - override onAnimationRepeat(animation: Animator | null) {} + override onAnimationRepeat(animation: Animator) {} } - //原生提供以下属性或方法的实现 + //原生提供以下属性或方法的实现 export default { name: "uts-animation-view", /** @@ -1296,14 +1296,14 @@ iOS 平台需要将三方依赖库放到 组件目录下 app-ios/Frameworks 中 default: "" }, /** - * 动画是否循环播放 + * 动画是否自动播放 */ "autoplay": { type: Boolean, default: false }, /** - * 动画是否自动播放 + * 动画是否循环播放 */ "loop": { type: Boolean, @@ -1334,18 +1334,20 @@ iOS 平台需要将三方依赖库放到 组件目录下 app-ios/Frameworks 中 "path": { handler(newPath: string) { - if(this.$el != null){ let lottieAnimationView = this.$el! if (!TextUtils.isEmpty(newPath)) { - - + if (newPath.startsWith("http://") || newPath.startsWith("https://")) { lottieAnimationView.setAnimationFromUrl(newPath) } else { - // 默认是static了 - var realJsonPath = UTSAndroid.getResourcePath(newPath) - lottieAnimationView.setAnimation(new FileInputStream(realJsonPath),newPath) + // 正式打包会放在asset中,需要特殊处理 + let realJsonPath = UTSAndroid.getResourcePath(newPath) + if(realJsonPath.startsWith("/android_asset")){ + lottieAnimationView.setAnimation(realJsonPath.substring(15)) + }else{ + lottieAnimationView.setAnimation(new FileInputStream(realJsonPath),newPath) + } } } if (this.autoplay) { @@ -1353,7 +1355,7 @@ iOS 平台需要将三方依赖库放到 组件目录下 app-ios/Frameworks 中 } } }, - immediate: false //创建时是否通过此方法更新属性,默认值为false + immediate: false }, "loop": { handler(newLoop: Boolean) { @@ -1364,14 +1366,14 @@ iOS 平台需要将三方依赖库放到 组件目录下 app-ios/Frameworks 中 // 不循环则设置成1次 this.$el!.repeatCount = 0 } - + if (this.autoplay) { this.$el!.playAnimation() } } - + }, - immediate: false //创建时是否通过此方法更新属性,默认值为false + immediate: false }, "autoplay": { @@ -1381,9 +1383,9 @@ iOS 平台需要将三方依赖库放到 组件目录下 app-ios/Frameworks 中 this.$el!.playAnimation() } } - + }, - immediate: false //创建时是否通过此方法更新属性,默认值为false + immediate: false }, "action": { @@ -1402,12 +1404,11 @@ iOS 平台需要将三方依赖库放到 组件目录下 app-ios/Frameworks 中 } } - } else { // 非法入参,不管 } }, - immediate: false //创建时是否通过此方法更新属性,默认值为false + immediate: false }, "hidden": { @@ -1420,7 +1421,7 @@ iOS 平台需要将三方依赖库放到 组件目录下 app-ios/Frameworks 中 } } }, - immediate: false //创建时是否通过此方法更新属性,默认值为false + immediate: false }, }, @@ -1434,49 +1435,33 @@ iOS 平台需要将三方依赖库放到 组件目录下 app-ios/Frameworks 中 } } }, - privateMethod() { //如何定义不对外暴露的API? 暂不支持,需在export外写 - } }, - created() { //创建组件,替换created - - }, - NVBeforeLoad() { //组件将要创建,对应前端beforeMount - //可选实现,这里可以提前做一些操作 - }, - NVLoad(): LottieAnimationView { //创建原生View,必须定义返回值类型(Android需要明确知道View类型,需特殊校验) - //必须实现 + + NVLoad(): LottieAnimationView { let lottieAnimationView = new LottieAnimationView($androidContext) return lottieAnimationView }, - - NVLoaded() { //原生View已创建 - //可选实现,这里可以做后续操作 + + NVLoaded() { if(this.$el != null){ this.$el!.repeatMode = LottieDrawable.RESTART; this.$el!.visibility = View.GONE this.$el!.repeatCount = 0 this.$el!.addAnimatorListener(new CustomAnimListener(this)) } - - }, - NVLayouted() { //原生View布局完成 - //可选实现,这里可以做布局后续操作 - }, - NVBeforeUnload() { //原生View将释放 - //可选实现,这里可以做释放View之前的操作 - }, - NVUnloaded() { //原生View已释放 - //可选实现,这里可以做释放View之后的操作 - }, - unmounted() { //组件销毁 - //可选实现 } + } + ``` > iOS -- GitLab