uni-app 安卓启动小程序SDK 转场动画为黑色过渡影响体验

发布于 1周前 作者 sinazl 来自 Uni-App

uni-app 安卓启动小程序SDK 转场动画为黑色过渡影响体验

开发环境 版本号 项目创建方式
vue 4.36

产品分类:
uni小程序SDK

手机系统:
Android

手机系统版本号:
Android 14

手机厂商:
华为

手机机型:
MagicOS8.0

页面类型:
vue

SDK版本号:
4.36

示例代码:

<activity
android:name=".component.splash.SplashActivity"
android:theme="@style/UniAppLaunchTheme"
android:exported="true"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
</intent-filter>
</activity>

<style name="UniAppLaunchTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:windowBackground">@color/page_color</item>
<item name="android:windowAnimationStyle">@style/CustomWindowAnimation</item>
</style>

<style name="CustomWindowAnimation" parent="android:style/Animation.Activity">
    <item name="android:activityOpenEnterAnimation">@anim/dcloud_page_open_enter</item>
    <item name="android:activityOpenExitAnimation">@anim/dcloud_page_open_exit</item>
    <item name="android:activityCloseEnterAnimation">@anim/dcloud_page_close_enter</item>
    <item name="android:activityCloseExitAnimation">@anim/dcloud_page_close_exit</item>
</style>

操作步骤:

  • android 打开 uni小程序

预期结果:

  • 安卓启动uni小程序sdk 转场动画可以设置为白色

实际结果:

  • 安卓启动uni小程序sdk 转场动画是大片黑色过渡且时间较长,特别扎眼

bug描述:

  • 已经配置了theme 但是不管用,希望官方给出解决方案,好几年前的问题了。

1 回复

针对您提到的uni-app在安卓平台上启动小程序SDK时,转场动画为黑色过渡影响用户体验的问题,可以通过自定义启动画面的方式来解决。以下是一个简单的实现示例,通过修改原生安卓代码来设置自定义的启动画面,从而避免黑色过渡的出现。

步骤一:准备自定义启动画面

首先,您需要准备一张用于启动画面的图片,并将其放置在Android项目的res/drawable目录下。假设图片名为splash.png

步骤二:修改AndroidManifest.xml

AndroidManifest.xml文件中,找到<activity>标签,它代表您的应用主活动(通常是MainActivity或类似名称)。在这个标签内,添加或修改以下属性以设置自定义启动画面:

<activity
    android:name=".YourMainActivity"
    android:theme="@style/SplashTheme">
    <!-- 其他配置 -->
</activity>

步骤三:定义SplashTheme样式

res/values/styles.xml文件中,定义一个名为SplashTheme的样式,用于指定启动画面的背景:

<resources>
    <!-- 其他样式定义 -->

    <style name="SplashTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <item name="android:windowBackground">@drawable/splash</item>
        <item name="android:windowIsTranslucent">false</item>
    </style>
</resources>

步骤四:在MainActivity中移除启动画面

MainActivityonCreate方法中,一旦应用启动并完成必要的初始化工作,可以通过设置窗口背景为透明来移除启动画面,并启动小程序SDK。以下是一个简化的示例:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    // 延迟一段时间以模拟初始化过程
    Handler handler = new Handler();
    handler.postDelayed(new Runnable() {
        @Override
        public void run() {
            // 设置窗口背景为透明,移除启动画面
            getWindow().setBackgroundDrawableResource(android.R.color.transparent);

            // 启动小程序SDK的逻辑代码
            // startMiniProgram();
        }
    }, 2000); // 2秒延迟,根据实际情况调整
}

请注意,上述代码中的startMiniProgram()方法应替换为您实际启动小程序SDK的代码。此外,根据您的应用需求,可能需要调整延迟时间或采用其他方式来确定何时移除启动画面。

通过上述步骤,您可以自定义uni-app在安卓平台上的启动画面,从而避免黑色过渡对用户体验的影响。

回到顶部