uni-app应用设置为主屏幕后进入一直处于启动页面
uni-app应用设置为主屏幕后进入一直处于启动页面
在安卓的 AndroidManifest.xml
清单中,添加以下代码:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.wt.yisuji_tablet">
<!-- io.dcloud.nativeresouce -->
<application
android:allowBackup="true"
android:allowClearUserData="true"
android:icon="@drawable/icon"
android:label="@string/app_name"
android:largeHeap="true"
android:supportsRtl="true">
<activity android:exported="true"
android:name="io.dcloud.PandoraEntry"
android:configChanges="orientation|keyboardHidden|keyboard|navigation"
android:label="@string/app_name"
android:launchMode="singleTop"
android:hardwareAccelerated="true"
android:theme="@style/TranslucentTheme"
android:screenOrientation="user"
android:windowSoftInputMode="adjustResize" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
<category android:name="android.intent.category.HOME" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity android:exported="true"
android:name="io.dcloud.PandoraEntryActivity"
android:launchMode="singleTop"
android:configChanges="orientation|keyboardHidden|screenSize|mcc|mnc|fontScale|keyboard|smallestScreenSize|screenLayout|screenSize|uiMode"
android:hardwareAccelerated="true"
android:permission="com.miui.securitycenter.permission.AppPermissionsEditor"
android:screenOrientation="user"
android:theme="@style/DCloudTheme"
android:windowSoftInputMode="adjustResize">
<intent-filter>
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<action android:name="android.intent.action.VIEW" />
<data android:scheme=" " />
</intent-filter>
</activity>
</application>
</manifest>
设置主屏幕的代码主要是这一段:
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
<category android:name="android.intent.category.HOME" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
添加之后,打包过来运行,是能设置成为主屏幕应用的,但是打开就一直处于启动页面。
之后取消主屏幕设置,直接打开app,也一直处于启动页面,不能进入到app内(从一开始不设置成主屏幕应用,是能正常打开app)。
现在不知道是什么问题导致的,是这清单的问题?还是app里面的代码配置问题吗?
有没有大佬给点见解或者解决办法。谢谢
开发环境与项目信息
项 | 信息 |
---|---|
包名 | com.wt.yisuji_tablet |
主要Activity | io.dcloud.PandoraEntry |
其他Activity | io.dcloud.PandoraEntryActivity |
AndroidManifest | 已配置主屏幕和默认启动器 |
测试添加之后可以启动,可以报一下有没有报错
1、首页打开没有设置主屏幕应用时,是否能打开软件
2、设置主屏幕应用之后,停留在启动页,那重启平板之后能否进入软件
res 目录下创建 ”layout" 然后在创建 “activity_splash.xml” 文件 内容:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#fff">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="[@drawable](/user/drawable)/push"
android:layout_centerInParent="true" />
</RelativeLayout>
然后打包运行
要屏蔽返回,第一次启动要重启一下机子
// 关闭程序启动界面
plus.navigator.closeSplashscreen();
相同的问题,请问你解决了吗
这个是不是放到POS上,要求将apk设置成桌面应用?
遇到同样问题,楼主解决了吗?
在uni-app中,如果应用被添加到主屏幕(通常称为“添加到主屏”或“添加到Home Screen”)后,进入应用一直处于启动页面,这可能是由于多种原因导致的。以下是一些可能的原因及解决方案的代码示例,帮助你排查和解决问题。
1. 检查App启动流程
确保你的App.vue
中的onLaunch
方法没有阻塞主线程。例如,如果你在onLaunch
中进行了长时间的网络请求或复杂的计算,这可能会导致启动页面卡住。
// App.vue
export default {
onLaunch() {
// 快速启动逻辑,避免长时间操作
console.log('App Launch');
// 网络请求或复杂计算应放在异步处理中
setTimeout(() => {
// 模拟异步操作
console.log('Async operation completed');
}, 0);
}
}
2. 检查页面跳转逻辑
确保在启动页面(通常是pages/index/index.vue
)中有正确的页面跳转逻辑。如果跳转条件不满足,可能会导致页面无法跳转。
// pages/index/index.vue
export default {
onLoad() {
// 假设有一个条件判断是否需要跳转到其他页面
if (this.shouldRedirect()) {
uni.redirectTo({
url: '/pages/other/other'
});
}
},
methods: {
shouldRedirect() {
// 返回是否需要跳转的布尔值
return true; // 或根据实际需求判断
}
}
}
3. 检查生命周期函数
确保没有其他页面的生命周期函数(如onShow
、onLoad
)中有阻塞操作,这可能会影响到启动页面的正常跳转。
// 其他页面的示例
export default {
onShow() {
// 快速执行逻辑,避免长时间操作
console.log('Page Show');
// 如果需要异步操作,同样应放在异步处理中
}
}
4. 调试和日志
增加更多的日志输出,以便更好地跟踪应用的启动流程和页面跳转情况。
// 在关键位置增加console.log
console.log('Checking condition for redirect...');
if (condition) {
console.log('Redirecting to another page...');
uni.redirectTo({ url: '/path/to/page' });
} else {
console.log('Condition not met, staying on current page.');
}
通过上述代码示例和检查点,你应该能够定位并解决uni-app应用在添加到主屏幕后一直处于启动页面的问题。如果问题依旧存在,建议进一步检查应用的网络请求、本地存储以及第三方插件的使用情况,确保它们没有影响到应用的正常启动和页面跳转。