import dsBridge from 'dsbridge' import { ClientConfig } from './config/ClientConfig'; export const isAPP = checkApp(); export function checkApp() { if (navigator.userAgent.indexOf('os/app_android') !== -1) { return true; } else if (navigator.userAgent.indexOf('os/app_iOS') !== -1) { return true; } return false } export function isNativeiOS() { if (navigator.userAgent.indexOf('os/app_iOS') !== -1) { return true; } return false } export function isNativeAndroid() { if (navigator.userAgent.indexOf('os/app_android') !== -1) { return true; } return false } export function getUserFiles(_key: string): Promise { return new Promise((resolve) => { if (!isAPP) { const str = localStorage.getItem(_key); return resolve(str) } dsBridge.call('getUserFiles', { key: _key }, function (content) { return resolve(content) }); }) } export function nativeCopy(str: string): Promise { return new Promise((resolve) => { dsBridge.call('nativeCopy', str, function (content) { return resolve(content) }); }) } export function setUserFiles(key: string, content: string) { return new Promise((resolve) => { if (!isAPP) { localStorage.setItem(key, content) return resolve(true); } dsBridge.call('setUserFiles', { key, content }, resolve) }) } export function delUserFilesByKey(key: string) { return new Promise((resolve) => { if (!isAPP) { localStorage.removeItem(key) return resolve(true); } dsBridge.call('delUserFilesByKey', { key }, resolve) }) } export function delUserFilesAll() { return new Promise((resolve) => { if (!isAPP) { localStorage.clear() return resolve(true); } dsBridge.call('delUserFilesAll', { type: 1 }, resolve) }) } /** true隐藏 false显示 */ export function hideTitleBar(params: { isHideTitleBar: boolean }) { return new Promise((resolve) => { if (!isAPP) { return resolve(true); } dsBridge.call('hideTitleBar', params, resolve) }) } export function closeCurrentPage() { return new Promise((resolve) => { if (!isAPP) { return resolve(true); } dsBridge.call('closeCurrentPage', { type: 1 }) return resolve(true); }) } export function takeScreenshot(): Promise<{ code: string, msg: string }> { return new Promise((resolve) => { if (!isAPP) { return resolve({ code: '000000', msg: 'success' }); } dsBridge.call('takeScreenshot', {}, function (content) { if (typeof content === 'string') { content = JSON.parse(content) } return resolve(content) }); }) } export function getAppXClient(): Promise { return new Promise((resolve) => { if (!isAPP) { return resolve(ClientConfig as any); } dsBridge.call('getAppXClient', {}, function (content) { if (typeof content === 'string') { content = JSON.parse(content) } return resolve(content) }); }) } interface XClient { "channelId": string "deviceId": string "fixVersion": number "mainVersion": string "os": string "platformId": number "pm": string "screenSize": string "sessionId": string "signVersion": number "source": number "subVersion": number "systemVersion": string "version": string }