mirror of
https://github.com/NativeScript/NativeScript.git
synced 2025-11-05 13:26:48 +08:00
Expose hasLaunched() on the application, style-scope will load css-es if app hasLaunched
This commit is contained in:
@@ -4,8 +4,16 @@ require("globals");
|
|||||||
import { Observable, EventData } from "data/observable";
|
import { Observable, EventData } from "data/observable";
|
||||||
|
|
||||||
const events = new Observable();
|
const events = new Observable();
|
||||||
// First merge all functions from events into application-common so that later appModule.on will be defined.
|
let launched = false;
|
||||||
global.moduleMerge(events, exports);
|
function setLaunched() {
|
||||||
|
launched = true;
|
||||||
|
events.off("launch", setLaunched);
|
||||||
|
}
|
||||||
|
events.on("launch", setLaunched);
|
||||||
|
|
||||||
|
export function hasLaunched(): boolean {
|
||||||
|
return launched;
|
||||||
|
}
|
||||||
|
|
||||||
export { Observable };
|
export { Observable };
|
||||||
|
|
||||||
@@ -34,9 +42,9 @@ export function setResources(res: any) {
|
|||||||
export let android = undefined;
|
export let android = undefined;
|
||||||
export let ios = undefined;
|
export let ios = undefined;
|
||||||
|
|
||||||
export function notify(args: EventData): void {
|
export const on: typeof events.on = events.on.bind(events);
|
||||||
events.notify(args);
|
export const off: typeof events.off = events.off.bind(events);
|
||||||
}
|
export const notify: typeof events.notify = events.notify.bind(events);
|
||||||
|
|
||||||
let app: iOSApplication | AndroidApplication;
|
let app: iOSApplication | AndroidApplication;
|
||||||
export function setApplication(instance: iOSApplication | AndroidApplication): void {
|
export function setApplication(instance: iOSApplication | AndroidApplication): void {
|
||||||
|
|||||||
10
tns-core-modules/application/application.d.ts
vendored
10
tns-core-modules/application/application.d.ts
vendored
@@ -148,6 +148,11 @@ export function on(event: "cssChanged", callback: (args: CssChangedEventData) =>
|
|||||||
*/
|
*/
|
||||||
export function on(event: "livesync", callback: (args: EventData) => void);
|
export function on(event: "livesync", callback: (args: EventData) => void);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Removes listener for the specified event name.
|
||||||
|
*/
|
||||||
|
export function off(eventNames: string, callback?: any, thisArg?: any);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Call this method to start the application. Important: All code after this method call will not be executed!
|
* Call this method to start the application. Important: All code after this method call will not be executed!
|
||||||
*/
|
*/
|
||||||
@@ -531,3 +536,8 @@ export interface RootViewControllerImpl {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export function getNativeApplication(): any;
|
export function getNativeApplication(): any;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Indicates if the application is allready launched. See also the `application.on("launch", handler)` event.
|
||||||
|
*/
|
||||||
|
export function hasLaunched(): boolean;
|
||||||
@@ -74,7 +74,16 @@ function loadCss(cssFile?: string): RuleSet[] {
|
|||||||
|
|
||||||
application.on("cssChanged", onCssChanged);
|
application.on("cssChanged", onCssChanged);
|
||||||
application.on("livesync", onLiveSync);
|
application.on("livesync", onLiveSync);
|
||||||
application.on("launch", () => loadCss(application.getCssFileName()));
|
|
||||||
|
function loadCssOnLaunch() {
|
||||||
|
loadCss(application.getCssFileName());
|
||||||
|
application.off("launch", loadCssOnLaunch);
|
||||||
|
}
|
||||||
|
if (application.hasLaunched()) {
|
||||||
|
loadCssOnLaunch();
|
||||||
|
} else {
|
||||||
|
application.on("launch", loadCssOnLaunch);
|
||||||
|
}
|
||||||
|
|
||||||
let pattern: RegExp = /('|")(.*?)\1/;
|
let pattern: RegExp = /('|")(.*?)\1/;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user