单击科尔多瓦中的应用程序图标启动器时如何恢复应用程序?
Posted
技术标签:
【中文标题】单击科尔多瓦中的应用程序图标启动器时如何恢复应用程序?【英文标题】:how to resume the application when click app icon launcher in cordova? 【发布时间】:2014-07-05 14:37:32 【问题描述】:我正在使用cordova phonegap 开发移动应用程序。我现在稍后在 ios 上在 android 平台上对其进行测试。我的问题是当我让应用程序在后台运行时,我单击此应用程序的启动器,它会重新初始化。我想要的是从启动器图标打开应用程序并继续从它所在的位置运行。
我试图将 config.xml 中的属性 keepRuning
设置为 true 但它不起作用。
<preference name="keepRunning" value="true" />
这是 config.xml:
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<widget xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0" id="com.coolappz.html5Application1" version="1.0.0">
<name>HTML5Application1</name>
<description>Cordova Application</description>
<author email="info@com.coolappz" href="http://www.coolappz.com">user</author>
<access origin="*"/>
<preference name="fullscreen" value="true"/>
<preference name="webviewbounce" value="true"/>
<preference name="keepRunning" value="true" />
</widget>
编辑: 更多详情:
我有一个计数器,它从 zero 开始,每秒递增 1。 如果我按下主页,计数器会在后台继续递增。问题是当我按下应用程序的图标启动器时,由于重新创建了应用程序,计数器会从零重置。
我希望这能让视图更清晰。
我的问题:
这可以通过cordova配置来处理吗,或者我需要一个插件来处理。 这可能吗?如何? 谢谢
【问题讨论】:
【参考方案1】:更新您的 config.xml 以获取缺少的首选项。 :
<preference name="permissions" value="none"/>
<!-- Customize your app and platform with the preference element. -->
<preference name="phonegap-version" value="3.3.0" /> <!-- all: current version of PhoneGap -->
<preference name="orientation" value="default" /> <!-- all: default means both landscape and portrait are enabled -->
<preference name="target-device" value="universal" /> <!-- all: possible values handset, tablet, or universal -->
<preference name="fullscreen" value="true" /> <!-- all: hides the status bar at the top of the screen -->
<preference name="webviewbounce" value="false" /> <!-- ios: control whether the screen 'bounces' when scrolled beyond the top -->
<preference name="prerendered-icon" value="true" /> <!-- ios: if icon is prerendered, iOS will not apply it's gloss to the app's icon on the user's home screen -->
<preference name="stay-in-webview" value="false" /> <!-- ios: external links should open in the default browser, 'true' would use the webview the app lives in -->
<preference name="ios-statusbarstyle" value="black-opaque" /> <!-- ios: black-translucent will appear black because the PhoneGap webview doesn't go beneath the status bar -->
<preference name="detect-data-types" value="true" /> <!-- ios: controls whether data types (such as phone no. and dates) are automatically turned into links by the system -->
<preference name="exit-on-suspend" value="false" /> <!-- ios: if set to true, app will terminate when home button is pressed -->
<preference name="show-splash-screen-spinner" value="true" /> <!-- ios: if set to false, the spinner won't appear on the splash screen during app loading -->
<preference name="auto-hide-splash-screen" value="true" /> <!-- ios: if set to false, the splash screen must be hidden using a javascript API -->
<preference name="disable-cursor" value="false" /> <!-- blackberry: prevents a mouse-icon/cursor from being displayed on the app -->
<preference name="android-minSdkVersion" value="10" /> <!-- android: MIN SDK version supported on the target device. MAX version is blank by default. -->
<preference name="android-installLocation" value="auto" /> <!-- android: app install location. 'auto' will choose. 'internalOnly' is device memory. 'preferExternal' is SDCard. -->
<preference name="KeyboardDisplayRequiresUserAction " value="false"/>
【讨论】:
本机平台从后台拉出应用程序时触发 resume 事件。但是当点击启动器时,应用程序被重新创建而不是恢复。 我马上分享 谢谢,还要检查我更新的帖子,其中我包含了我的应用程序的 config.xml,我没有发现这个问题。所以,请包括所有缺失的偏好,即使看起来没用。可能其中一些是依赖的。 对不起,我尝试了这些配置,问题仍然存在 您的应用程序是否在这些配置上正确运行并在单击 lancher 图标后恢复??【参考方案2】:我试过这个解决方案,它对我有用
添加
android:launchMode="singleInstance"
对于 AndroidManifest.xml 中的活动标签,您可以在 projectName/platforms/android/AndroidManifest.xml 中找到它。
就是这样。
【讨论】:
以上是关于单击科尔多瓦中的应用程序图标启动器时如何恢复应用程序?的主要内容,如果未能解决你的问题,请参考以下文章
通过单击应用程序图标(来自后台)打开时反应本机android应用程序重新启动
是否可以通过 PC 重新启动或用户单击应用程序快捷方式来确定 MFC 应用程序正在启动?