uni-app 安卓启动小程序SDK 转场动画为黑色过渡影响体验
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 但是不管用,希望官方给出解决方案,好几年前的问题了。
针对您提到的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中移除启动画面
在MainActivity
的onCreate
方法中,一旦应用启动并完成必要的初始化工作,可以通过设置窗口背景为透明来移除启动画面,并启动小程序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在安卓平台上的启动画面,从而避免黑色过渡对用户体验的影响。