我最近决定使用PhoneGap在多个设备上编写应用程序。每当我尝试使用插件时,它会在很长时间后工作,并且会在Google上进行数百次搜索...而且有时候它根本不适用于我。所以我可能不了解PhoneGap的基本知识。
让我们来谈谈一个简单的插件,即Splash Screen插件(https://github.com/apache/cordova-plugin-splashscreen)。
在插件指令上,我知道我需要在config.xml中编写这些行:
<preference name="SplashScreen" value="foo" />
<preference name="SplashScreenDelay" value="3000" />
<preference name="SplashMaintainAspectRatio" value="true|false" />
<preference name="SplashShowOnlyFirstTime" value="true|false" />
但是如果您阅读Android部分(http://cordova.apache.org/docs/en/dev/config_ref/images.html)中找到的链接中的指令,我应该在config.xml中写下这些行:
<platform name="android">
<!-- you can use any density that exists in the Android project -->
<splash src="res/screen/android/splash-land-hdpi.png" density="land-hdpi"/>
<splash src="res/screen/android/splash-land-ldpi.png" density="land-ldpi"/>
<splash src="res/screen/android/splash-land-mdpi.png" density="land-mdpi"/>
<splash src="res/screen/android/splash-land-xhdpi.png" density="land-xhdpi"/>
<splash src="res/screen/android/splash-port-hdpi.png" density="port-hdpi"/>
<splash src="res/screen/android/splash-port-ldpi.png" density="port-ldpi"/>
<splash src="res/screen/android/splash-port-mdpi.png" density="port-mdpi"/>
<splash src="res/screen/android/splash-port-xhdpi.png" density="port-xhdpi"/>
</platform>
我尝试了两个指令而且它不起作用。我在PhoneGap Build上找到了其他指令,我想在config.xml中编写这些留言:
<splash src="ldpi.png" platform="android" qualifier="ldpi" />
<splash src="mdpi.png" platform="android" qualifier="mdpi" />
<splash src="hdpi.png" platform="android" qualifier="hdpi" />
<splash src="xhdpi.png" platform="android" qualifier="xhdpi" />
<splash src="fr-xhdpi.png" platform="android" qualifier="fr-xhdpi" />
<splash src="portrait-xxhdpi.png" platform="android" qualifier="port-xxhdpi" />
<splash src="landscape-xxhdpi.png" platform="android" qualifier="land-xxhdpi" />
并且让我更加困惑,如果我检查PhoneGap生成的“默认”config.xml,我发现这些行:
<gap:splash src="www/res/screen/android/screen-ldpi-portrait.png" gap:platform="android" gap:qualifier="port-ldpi"/>
<gap:splash src="www/res/screen/android/screen-mdpi-portrait.png" gap:platform="android" gap:qualifier="port-mdpi"/>
<gap:splash src="www/res/screen/android/screen-hdpi-portrait.png" gap:platform="android" gap:qualifier="port-hdpi"/>
<gap:splash src="www/res/screen/android/screen-xhdpi-portrait.png" gap:platform="android" gap:qualifier="port-xhdpi"/>
正如您所看到的,有时源文件以'www'或'res'开头,有时我们<splash>
元素或平台内的<platform>
属性为{{1}元素。
<splash>
和<splash>
元素之间有什么区别?
我对PhoneGap API,PhoneGap Build API和插件网页中的说明非常困惑。
我在Mac上使用PhoneGap 5.3.9。 我使用Android PhoneGap应用程序或使用PhoneGap Build(cli-5.2.0)测试我的应用程序。
答案 0 :(得分:0)
我最近开始使用Cordova(phonegap的开源版本)而且我也很挣扎。但是,我学到的一些东西,我认为可能有助于让事情更清楚。
Phonegap旨在使您的代码在多个平台(iOS,Android等)上生成。您在&#39;平台&#39;中看到的所有文件目录适用于特定平台。如果要对不会影响其他平台的特定平台进行更改,则只应编辑这些文件。除了项目根文件夹中的配置文件外,每个平台都有自己的config.xml文件。假设您并未尝试专门为Android设置启动画面,但希望它在每个平台上看起来都相同,则只应编辑项目根文件夹中的config.xml。
我会尝试仅使用您发布的第1和第3个代码块。第二个是针对Android特定的自定义。而且我不确定第四个。
至于它不起作用,我建议您使用调试器来查明不起作用的内容。为了调试android,我使用了Chrome远程调试:https://developer.chrome.com/devtools/docs/remote-debugging
从那里,您可以查看控制台日志,它可能会告诉您有关未加载插件的信息。如果没有,它有一些工具可以用来确定你的插件为什么不工作(断点,日志语句)。
希望这有帮助!如果没有,你可以问我,也许可以提供进一步的建议。
答案 1 :(得分:0)
使用cordova的一个非常重要的一点是,决定使用cordova或其变体,如phonegap,ionic,...
如果您做出此决定,请仅遵循相应的文档,不要将其与其他文档混合使用,只使用最新的文档。 Cordova非常发达,并且有很多变化。这意味着,每一个cordova版本都基于较旧版本的cordova。
另一个重点是,变体使用其他语法,例如,phonegap设置正在开始
您应该在项目根目录的config.xml中进行项目设置。在项目的每个版本中,cordova都将使用此设置。
在此config.xml中,您可以拥有全局设置和平台设置。平台设置如下所示:
<platform name="android">
// Here your settings for android
</platform>
您可以在此处找到的图标和闪屏的工作设置:
http://cordova.apache.org/docs/en/dev/config_ref/images.html
如果你想拥有非常清晰的图标和闪屏,那么你应该自己创建不同的尺寸并使用矢量软件。