114 lines
4.1 KiB
JavaScript
Raw Normal View History

const utils = require('../../../common/utils');
if (window.__globalAdapter) {
let globalAdapter = window.__globalAdapter;
let isLandscape = false; // getSystemInfoSync not supported in sub context
// SystemInfo
if (swan.getSystemInfoSync) {
let systemInfo = swan.getSystemInfoSync();
let windowWidth = systemInfo.windowWidth;
let windowHeight = systemInfo.windowHeight;
isLandscape = windowWidth > windowHeight;
globalAdapter.isDevTool = systemInfo.platform === 'devtools';
}
else {
// can't define window in devtool
let descriptor = Object.getOwnPropertyDescriptor(global, 'window');
globalAdapter.isDevTool = !(!descriptor || descriptor.configurable === true);
}
globalAdapter.isSubContext = (swan.getOpenDataContext === undefined);
utils.cloneMethod(globalAdapter, swan, 'getSystemInfoSync');
// TouchEvent
utils.cloneMethod(globalAdapter, swan, 'onTouchStart');
utils.cloneMethod(globalAdapter, swan, 'onTouchMove');
utils.cloneMethod(globalAdapter, swan, 'onTouchEnd');
utils.cloneMethod(globalAdapter, swan, 'onTouchCancel');
// Audio
utils.cloneMethod(globalAdapter, swan, 'createInnerAudioContext');
// FrameRate
utils.cloneMethod(globalAdapter, swan, 'setPreferredFramesPerSecond');
// Keyboard
utils.cloneMethod(globalAdapter, swan, 'showKeyboard');
utils.cloneMethod(globalAdapter, swan, 'hideKeyboard');
utils.cloneMethod(globalAdapter, swan, 'updateKeyboard');
utils.cloneMethod(globalAdapter, swan, 'onKeyboardInput');
utils.cloneMethod(globalAdapter, swan, 'onKeyboardConfirm');
utils.cloneMethod(globalAdapter, swan, 'onKeyboardComplete');
utils.cloneMethod(globalAdapter, swan, 'offKeyboardInput');
utils.cloneMethod(globalAdapter, swan, 'offKeyboardConfirm');
utils.cloneMethod(globalAdapter, swan, 'offKeyboardComplete');
// Message
utils.cloneMethod(globalAdapter, swan, 'getOpenDataContext');
utils.cloneMethod(globalAdapter, swan, 'onMessage');
// SharedCanvas
utils.cloneMethod(globalAdapter, swan, 'getSharedCanvas');
// Font
utils.cloneMethod(globalAdapter, swan, 'loadFont');
// hide show Event
utils.cloneMethod(globalAdapter, swan, 'onShow');
utils.cloneMethod(globalAdapter, swan, 'onHide');
// Accelerometer
let isAccelerometerInit = false;
let deviceOrientation = 1;
if (swan.onDeviceOrientationChange) {
swan.onDeviceOrientationChange(function (res) {
if (res.value === 'landscape') {
deviceOrientation = 1;
}
else if (res.value === 'landscapeReverse') {
deviceOrientation = -1;
}
});
}
Object.assign(globalAdapter, {
startAccelerometer (cb) {
if (!isAccelerometerInit) {
isAccelerometerInit = true;
swan.onAccelerometerChange && swan.onAccelerometerChange(function (res) {
let resClone = {};
let x = res.x;
let y = res.y;
if (isLandscape) {
let tmp = x;
x = -y;
y = tmp;
}
resClone.x = x * deviceOrientation;
resClone.y = y * deviceOrientation;
resClone.z = res.z;
cb && cb(resClone);
});
}
else {
swan.startAccelerometer && swan.startAccelerometer({
fail (err) {
console.error('start accelerometer failed', err);
},
// success () {},
// complete () {},
});
}
},
stopAccelerometer () {
swan.stopAccelerometer && swan.stopAccelerometer({
fail (err) {
console.error('stop accelerometer failed', err);
},
// success () {},
// complete () {},
});
},
});
}