我一直在尝试将自定义的飞溅屏幕添加到我的ionic2 sidemenu项目。我的应用程序在本地主机中而不是飞溅屏幕。我所遵循的过程类似于此处描述的一个:https://www.youtube.com/watch?v = x04rztl2eis
- 首先,我删除了资源文件夹中的默认离子图标和plash.png图像以及Android和iOS文件夹中的启动文件夹。
- 然后,我已经在资源文件夹中添加了我选择的.png图像。
- 然后,我已经运行了命令"离子资源Android -s -splash"one_answers" Ionic Resources iOS-Splash",它们会自动使用图像中的iOS和Android文件夹内部自动创建Splash文件夹。
- 我已经设置了函数" splashscreen.show();";在app.component.ts中我什至将默认值设置为config.xml文件中的3000。
执行所有操作后,我在命令提示符中运行了命令" ionic serve -L"。但是它仍然显示我的sidemenu应用程序的主页,而不是splash屏幕。
app.component.ts file
import { Component, ViewChild } from '@angular/core';
import { Nav, Platform } from 'ionic-angular';
import { StatusBar, Splashscreen } from 'ionic-native';
import { Page1 } from '../pages/page1/page1';
import { Page2 } from '../pages/page2/page2';
@Component({
templateUrl: 'app.html'
})
export class MyApp {
@ViewChild(Nav) nav: Nav;
rootPage: any = Page1;
pages: Array<{title: string, component: any}>;
constructor(public platform: Platform) {
this.initializeApp();
// used for an example of ngFor and navigation
this.pages = [
{ title: 'Page One', component: Page1 },
{ title: 'Page Two', component: Page2 }
];
}
initializeApp() {
this.platform.ready().then(() => {
// Okay, so the platform is ready and our plugins are available.
// Here you can do any higher level native things you might need.
StatusBar.styleDefault();
Splashscreen.show();
});
}
openPage(page) {
// Reset the content nav to have just this page
// we wouldn't want the back button to show in this scenario
this.nav.setRoot(page.component);
}
}
config.xml file
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<widget id="io.ionic.starter" version="0.0.1" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
<name>V2 Test</name>
<description>An awesome Ionic/Cordova app.</description>
<author email="hi@ionicframework" href="http://ionicframework.com/">Ionic Framework Team</author>
<content src="index.html"/>
<access origin="*"/>
<allow-navigation href="http://ionic.local/*"/>
<allow-intent href="http://*/*"/>
<allow-intent href="https://*/*"/>
<allow-intent href="tel:*"/>
<allow-intent href="sms:*"/>
<allow-intent href="mailto:*"/>
<allow-intent href="geo:*"/>
<platform name="android">
<allow-intent href="market:*"/>
<splash src="resourcesandroidsplashdrawable-land-ldpi-screen.png" density="land-ldpi"/>
<splash src="resourcesandroidsplashdrawable-port-ldpi-screen.png" density="port-ldpi"/>
<splash src="resourcesandroidsplashdrawable-port-mdpi-screen.png" density="port-mdpi"/>
</platform>
<platform name="ios">
<allow-intent href="itms:*"/>
<allow-intent href="itms-apps:*"/>
<splash src="resourcesiossplashDefault~iphone.png" width="320" height="480"/>
</platform>
<preference name="webviewbounce" value="false"/>
<preference name="UIWebViewBounce" value="false"/>
<preference name="DisallowOverscroll" value="true"/>
<preference name="android-minSdkVersion" value="16"/>
<preference name="BackupWebStorage" value="none"/>
<preference name="SplashMaintainAspectRatio" value="true"/>
<preference name="FadeSplashScreenDuration" value="3000"/>
<preference name="SplashShowOnlyFirstTime" value="false"/>
<preference name="SplashScreen" value="screen"/>
<preference name="SplashScreenDelay" value="3000"/>
<feature name="StatusBar">
<param name="ios-package" onload="true" value="CDVStatusBar"/>
</feature>
<plugin name="ionic-plugin-keyboard" spec="~2.2.1"/>
<plugin name="cordova-plugin-whitelist" spec="1.3.1"/>
<plugin name="cordova-plugin-console" spec="1.0.5"/>
<plugin name="cordova-plugin-statusbar" spec="2.2.1"/>
<plugin name="cordova-plugin-device" spec="1.1.4"/>
<plugin name="cordova-plugin-splashscreen" spec="~4.0.1"/>
</widget>
我在互联网上阅读了我们需要一个Android模拟器和iOS模拟器来查看飞溅屏幕。这确实需要吗?
请帮助我如何显示自定义飞溅屏幕。
我在互联网上阅读了我们需要Android模拟器和iOS 模拟器查看飞溅屏幕。这确实需要吗?
是。您需要在模拟器或溅射屏幕的实际设备中运行。
因为它实际上是通过离子本机导入的Cordova插件。链接此处。CODOVA插件通常在ionic serve
中被禁用,因为它们专门用于使用移动设备的功能。您似乎已经遵循了所有步骤。在模拟器中运行并检查。
根据github中的此链接,如果将设置放置在您的 config.xml 中,则会自动显示SplashScreen。您必须致电Splashscreen.hide()
。
initializeApp() {
this.platform.ready().then(() => {
// Okay, so the platform is ready and our plugins are available.
// Here you can do any higher level native things you might need.
StatusBar.styleDefault();
Splashscreen.hide();
});
}