Skip to content

multi window detection for Android and onStart() onStop() app state callbacks

License

Notifications You must be signed in to change notification settings

pliablepixels/cordova-plugin-multi-window

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

cordova-plugin-multi-window

Tests if app is running in multi-window mode for Android devices. Also lets you trap onStop() and onStart() which are important to differentiate from onPause events while in multi-window.

This is my first cordova plugin, scraped together looking at this tutorial. I am not an android native developer, so the code in the java file is a result of looking at other examples and trying to resolve compile/run time errors as they came along. I don't have a clue on how to write a proper android class file.

If you can improve it, please PR.

Test Repo

Feel free to clone this test repo

Usage inside your app

cordova plugin add cordova-plugin-multiwindow --save

To get multi-window state:

window.MultiWindowPlugin.get(function (result) {
        console.log ("Multi-Window state is:" + result.state);
},
function (err) { 
    console.log (" *************** ERR:"+JSON.stringify(err));
});

To register for onStop() and onStart():

NOTE: onStart() and onStop() are also invoked in non-multi window mode

This plugin allows multiple callbacks to register to the events, because in practice, while building an app you'll want to trap these events in different controllers to manage pause/resume states in different views. To do this, you can pass a handle (string) during registration which you can use to de-register that specific instance.

// Make sure you do this AFTER deviceReady
window.MultiWindowPlugin.registerOnStop("my-stop-handle-thiscontroller", onStop);
window.MultiWindowPlugin.registerOnStart("my-start-handle", onStart);
// and in a different controller, maybe
window.MultiWindowPlugin.registerOnStop("my-stop-handle-othercontroller", onOtherStopHandler);

To de-register for onStop() and onStart():

// Make sure you do this AFTER deviceReady
window.MultiWindowPlugin.deregisterOnStop("my-stop-handle-othercontroller");
window.MultiWindowPlugin.deregisterOnStart("my-start-handle");

Or, all together:

NOTE: This will de-register ALL callbacks in all controllers across the app, so use with caution

// Make sure you do this AFTER deviceReady
window.MultiWindowPlugin.deregisterAll();

About

multi window detection for Android and onStart() onStop() app state callbacks

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published