Add 'displayed' event on application for iOS

This commit is contained in:
Panayot Cankov
2017-05-16 12:52:09 +03:00
parent 90d36b26d3
commit 610794f709
2 changed files with 13 additions and 3 deletions

View File

@ -195,7 +195,9 @@ export function hasListeners(eventName: string): boolean;
export function on(event: "launch", callback: (args: LaunchEventData) => void, thisArg?: any); export function on(event: "launch", callback: (args: LaunchEventData) => void, thisArg?: any);
/** /**
* This event is raised after the application has launched and was fully drawn. * This event is raised after the application has performed most of its startup actions.
* Its intent is to be suitable for measuring app startup times.
* @experimental
*/ */
export function on(event: "displayed", callback: (args: EventData) => void, thisArg?: any); export function on(event: "displayed", callback: (args: EventData) => void, thisArg?: any);

View File

@ -2,7 +2,7 @@
import { import {
notify, launchEvent, resumeEvent, suspendEvent, exitEvent, lowMemoryEvent, notify, launchEvent, resumeEvent, suspendEvent, exitEvent, lowMemoryEvent,
orientationChangedEvent, setApplication, livesync orientationChangedEvent, setApplication, livesync, displayedEvent
} from "./application-common"; } from "./application-common";
// First reexport so that app module is initialized. // First reexport so that app module is initialized.
@ -16,6 +16,8 @@ class Responder extends UIResponder {
// //
} }
let displayedOnce = false;
class Window extends UIWindow { class Window extends UIWindow {
public content; public content;
@ -138,7 +140,13 @@ class IOSApplication implements IOSApplicationDefinition {
} }
private didBecomeActive(notification: NSNotification) { private didBecomeActive(notification: NSNotification) {
notify(<ApplicationEventData>{ eventName: resumeEvent, object: this, ios: utils.ios.getter(UIApplication, UIApplication.sharedApplication) }); let ios = utils.ios.getter(UIApplication, UIApplication.sharedApplication);
let object = this;
notify(<ApplicationEventData>{ eventName: resumeEvent, object, ios });
if (!displayedOnce) {
notify(<ApplicationEventData>{ eventName: displayedEvent, object, ios });
displayedOnce = true;
}
} }
private didEnterBackground(notification: NSNotification) { private didEnterBackground(notification: NSNotification) {