2024-10-16 17:12:08 +08:00

102 lines
3.3 KiB
JavaScript

const utils = require('../../../common/utils');
if (window.__globalAdapter) {
let globalAdapter = window.__globalAdapter;
// SystemInfo
globalAdapter.isSubContext = false; // sub context not supported
globalAdapter.isDevTool = window.navigator && (/AlipayIDE/.test(window.navigator.userAgent));
utils.cloneMethod(globalAdapter, my, 'getSystemInfoSync');
// TouchEvent
// my.onTouchStart register touch event listner on body
// need to register on canvas
globalAdapter.onTouchStart = function (cb) {
window.canvas.addEventListener('touchstart', function (res) {
cb && cb(res);
});
};
globalAdapter.onTouchMove = function (cb) {
window.canvas.addEventListener('touchmove', function (res) {
cb && cb(res);
});
};
globalAdapter.onTouchEnd = function (cb) {
window.canvas.addEventListener('touchend', function (res) {
cb && cb(res);
});
};
globalAdapter.onTouchCancel = function (cb) {
window.canvas.addEventListener('touchcancel', function (res) {
cb && cb(res);
});
};
// Audio
globalAdapter.createInnerAudioContext = function() {
let audio = my.createInnerAudioContext();
audio.onCanplay = audio.onCanPlay.bind(audio);
return audio;
};
// FrameRate
utils.cloneMethod(globalAdapter, my, 'setPreferredFramesPerSecond');
// Keyboard
utils.cloneMethod(globalAdapter, my, 'showKeyboard');
utils.cloneMethod(globalAdapter, my, 'hideKeyboard');
utils.cloneMethod(globalAdapter, my, 'updateKeyboard');
utils.cloneMethod(globalAdapter, my, 'onKeyboardInput');
utils.cloneMethod(globalAdapter, my, 'onKeyboardConfirm');
utils.cloneMethod(globalAdapter, my, 'onKeyboardComplete');
utils.cloneMethod(globalAdapter, my, 'offKeyboardInput');
utils.cloneMethod(globalAdapter, my, 'offKeyboardConfirm');
utils.cloneMethod(globalAdapter, my, 'offKeyboardComplete');
// Message
utils.cloneMethod(globalAdapter, my, 'getOpenDataContext');
utils.cloneMethod(globalAdapter, my, 'onMessage');
// SharedCanvas
utils.cloneMethod(globalAdapter, my, 'getSharedCanvas');
// Font
utils.cloneMethod(globalAdapter, my, 'loadFont');
// hide show Event
utils.cloneMethod(globalAdapter, my, 'onShow');
utils.cloneMethod(globalAdapter, my, 'onHide');
// Accelerometer
let accelerometerCallback = null;
let systemInfo = my.getSystemInfoSync();
let windowWidth = systemInfo.windowWidth;
let windowHeight = systemInfo.windowHeight;
let isLandscape = windowWidth > windowHeight;
function accelerometerChangeCallback (res, cb) {
let resClone = {};
let x = res.x;
let y = res.y;
if (isLandscape) {
let tmp = x;
x = -y;
y = tmp;
}
resClone.x = x;
resClone.y = y;
resClone.z = res.z;
accelerometerCallback && accelerometerCallback(resClone);
}
Object.assign(globalAdapter, {
startAccelerometer (cb) {
accelerometerCallback = cb;
my.onAccelerometerChange && my.onAccelerometerChange(accelerometerChangeCallback);
},
stopAccelerometer () {
my.offAccelerometerChange && my.offAccelerometerChange(accelerometerChangeCallback);
},
});
}