var exec = require('cordova/exec'), screenOrientation = {}, iosOrientation = 'unlocked', orientationMap = { 'portrait': [0,180], 'portrait-primary': [0], 'portrait-secondary': [180], 'landscape': [-90,90], 'landscape-primary': [-90], 'landscape-secondary': [90], 'default': [-90,90,0,180] }; screenOrientation.setOrientation = function(orientation) { iosOrientation = orientation; var success = function(res) { if (orientation === 'unlocked' && res.device) { iosOrientation = res.device; setTimeout(function() { iosOrientation = 'unlocked'; },300); } }; exec(success, null, "YoikScreenOrientation", "screenOrientation", ['set', orientation]); }; module.exports = screenOrientation; // ios orientation callback/hook window.shouldRotateToOrientation = function(orientation) { var map = orientationMap[iosOrientation] || orientationMap['default']; return map.indexOf(orientation) >= 0; };