UNPKG

octopus-ad

Version:

Quickapp Sample Template

182 lines (164 loc) 4.19 kB
import device from '@system.device' import pkg from '@system.package' import router from '@system.router' import storage from '@system.storage' import { promisify, report } from './index' export const getDeviceInfo = async () => { try { const getHasInstalled = promisify(pkg.hasInstalled) const getStorage = promisify(storage.get); const getInfo = promisify(device.getInfo) const getOAID = promisify(device.getOAID) const getDeviceId = promisify(device.getDeviceId); const getTotalStorage = promisify(device.getTotalStorage); const getUserId = promisify(device.getUserId); const info = await getInfo() const res = await getOAID() const { userId } = await getUserId() const { oaid } = res const totalStorage = await getTotalStorage() let deviceId = ''; try { const deviceIdData = await getDeviceId(); deviceId = deviceIdData.deviceId; } catch (error) { } const { brand, manufacturer, model, osType, osVersionName, osVersionCode, deviceType, screenWidth, screenHeight, language, screenDensity, } = info const wx_installed = await getHasInstalled({ package: 'com.tencent.mm', }) return { os: `${osVersionName}(${osVersionCode})`, platform: `PLATFORM_${osType}`.toUpperCase(), devType: `DEVICE_${deviceType}`.toUpperCase(), brand: brand ? brand.toUpperCase() : '', model, manufacturer, resolution: `${screenHeight}_${screenWidth}`, screenSize: `5.7`, language, density: screenDensity.toFixed(2), androidId: userId, imei: deviceId, oaid: deviceId || oaid || userId, wx_installed: wx_installed.result, harddiskSize: totalStorage.totalStorage, // brand, model, osType, osVersionName, osVersionCode, deviceType, screenWidth, screenHeight, language, screenDensity, screenRefreshRate } } catch (error) { console.error(error); return null } } export const getNetworkType = async () => { const getType = promisify(device.getNetworkType) try { const data = await getType() return data.type } catch (error) { return null } } export const getSimOperator = async () => { const getSimOperator = promisify(device.getSimOperator) const options = [{ label: 'CN_MOBILE', mnc: [46000, 46002, 46004, 46007] }, { label: 'CN_UNICOM', mnc: [46001, 46006, 46009] }, { }, { label: 'CN_TEL', mnc: [46003, 46005, 46011] }] try { const data = await getSimOperator() const list = data.simOperators const target = list[0]; const { operator } = target let label = '' options.forEach(item => { if (item.mnc.includes(operator)) { label = item.label } }) return `LSP_${label}` } catch (error) { return 'LSP_UNKNOWN' } } export const handleAdClick = async ({ packageName, deeplinkUrl, landingPageUrl, interactType, dpSucessUrl, downSucessUrl, click, shouldReport }) => { if (interactType === 4) { report(click, 0, shouldReport).then(() => { router.push({ uri: landingPageUrl, }) }) return } if (interactType === 2) { if (packageName === '' || deeplinkUrl === '') { report(click, 0, shouldReport) if (landingPageUrl) { router.push({ uri: landingPageUrl, }) return; } return; } report(click, 0) pkg.hasInstalled({ package: packageName, success: function(data) { if (data.result) { report(dpSucessUrl, 0).then(() => { router.push({ uri: deeplinkUrl, }) }) } else { pkg.install({ package: packageName, success: function() { report(downSucessUrl, '6',) } }) } }, }) } } export const getScreenSize = async () => { const getInfo = promisify(device.getInfo) const info = await getInfo(); const { windowWidth, windowHeight, } = info; return { width: windowWidth, height: windowHeight, } }