ylh-quick-app-ad-sdk
Version:
安装命令: 通过 `npm` 安装: ```sh npm install ylh-quick-app-ad-sdk ``` 通过 `yarn` 安装: ```sh yarn add ylh-quick-app-ad-sdk ```
106 lines (97 loc) • 3.1 kB
JavaScript
/* eslint-disable import/no-unresolved */
import app from '@system.app';
import fetch from '@system.fetch';
import file from '@system.file';
import device from '@system.device';
import network from '@system.network';
import shortcut from '@system.shortcut';
import battery from '@system.battery';
import brightness from '@system.brightness';
import webview from '@system.webview';
import storage from '@system.storage';
import pkg from '@system.package';
import router from '@system.router';
import prompt from '@system.prompt';
import cipher from '@system.cipher';
import volume from '@system.volume';
import sensor from '@system.sensor';
import vibrator from '@system.vibrator';
import {
classCallCheck,
initYLHSDK,
} from './utils';
import YlhQuickAppAdSDKCore from './lib/ylh-sdk-core-v1.7.1070.min';
const qaGlobal = Object.getPrototypeOf(global) || global;
const system = {
fetch,
file,
device,
network,
shortcut,
battery,
brightness,
webview,
storage,
pkg,
router,
prompt,
cipher,
volume,
sensor,
vibrator,
app,
BroadcastChannel,
};
// 为加快运行速度,缓存promise
const userPromiseCache = {};
const YLH_SDK_SUPPORT_MINI_PLATFORM_VER = 1100;
export const isPlatformVersionCodeGreaterThen1100 = async () => {
if (!userPromiseCache.platformPromise) {
userPromiseCache.platformPromise = new Promise((resolve, reject) => {
device.getInfo({
success: (deviceInfoInfo) => {
const { platformVersionCode } = deviceInfoInfo;
if (platformVersionCode < YLH_SDK_SUPPORT_MINI_PLATFORM_VER) {
reject(new Error(JSON.stringify({ platform: platformVersionCode })));
} else {
resolve(true);
}
},
fail: () => {
reject(new Error(JSON.stringify({ platform: '未知' })));
},
});
});
}
return userPromiseCache.platformPromise;
};
/**
* 快应用SDK入口函数
* @param {Object} $app 快应用 App 实例。注意$app和app的区别:$app-快应用实例,app-快应用文档提供的@system.app api。
*/
export default function YLH_UNION_AD_SDK_PURE($app, config = {}) {
classCallCheck(this, YLH_UNION_AD_SDK_PURE);
if (!config.appId) {
console.error('必须传递appId,ylh_sdk才会正常运行');
return;
}
initYLHSDK($app);
isPlatformVersionCodeGreaterThen1100().then(() => {
qaGlobal.$YLHSDK = {
$app,
config,
system: {
...system,
telecom: require('@system.telecom'), // telecom 必须 大于 1080 版本
keyguard: require('@system.keyguard'), // keyguard 必须 大于 1090 版本
downloadTask: require('@system.downloadtask'), // downloadTask 必须 大于 1100 版本
},
};
// eslint-disable-next-line no-new
YlhQuickAppAdSDKCore(qaGlobal.$YLHSDK);
}).catch((err) => {
const errObj = err?.message ? JSON.parse(err.message) : {};
console.warn(`该机型的 minPlatformVersion 为${errObj.platform}, 小于${YLH_SDK_SUPPORT_MINI_PLATFORM_VER},
ylh_sdk 不会运行也不会导致快应用异常`);
});
}