12345678910111213141516171819202122232425262728293031323334353637383940 |
- let cache = null;
- function getSafeArea() {
- return new Promise((resolve, reject) => {
- if (cache != null) {
- resolve(cache);
- }
- else {
- wx.getSystemInfo({
- success: ({ model, statusBarHeight }) => {
- const deviceType = model.replace(/\s/g, '-');
- const iphoneNew = /iphone-x|iPhone11|iPhone12|iPhone13/i.test(deviceType);
- cache = {
- isIPhoneX: iphoneNew,
- statusBarHeight
- };
- resolve(cache);
- },
- fail: reject
- });
- }
- });
- }
- export const safeArea = ({ safeAreaInsetBottom = true, safeAreaInsetTop = false } = {}) => Behavior({
- properties: {
- safeAreaInsetTop: {
- type: Boolean,
- value: safeAreaInsetTop
- },
- safeAreaInsetBottom: {
- type: Boolean,
- value: safeAreaInsetBottom
- }
- },
- created() {
- getSafeArea().then(({ isIPhoneX, statusBarHeight }) => {
- this.set({ isIPhoneX, statusBarHeight });
- });
- }
- });
|