rxd-wf-api
Version:
WF API Client- WeForward API请求封装
58 lines (57 loc) • 1.76 kB
JavaScript
const getSystem = () => {
const u = navigator.userAgent
let system = 'PC'
let isAndroid = u.indexOf('Android') > -1 || u.indexOf('Adr') > -1 //android终端
let isIOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/) //ios终端
if (isAndroid) system = 'android'
if (isIOS) system = 'ios'
return system
}
// 发送数据给原生
const postMessage = (pluginCode, message) => {
if (getSystem() === 'android') {
const methodName = 'window.' + pluginCode
eval(methodName).postMessage(message)
} else if (getSystem() === 'ios') {
const methodName = 'window.webkit.messageHandlers.' + pluginCode
eval(methodName).postMessage(message)
}
}
const test = () => {
if (getSystem() !== 'PC') {
postMessage('pluginCenter', 'dataStorePlugin')
}
}
const dataStorePluginResult = (params) => {
console.log(params, '获取端应用的数据')
if (getSystem() === 'android') {
init(JSON.parse(params))
} else {
init(params)
}
}
window.dataStorePluginResult = dataStorePluginResult
const statement = () => {
if (getSystem() === 'android' && !window.dataStorePlugin) {
window.location.reload()
}
postMessage('dataStorePlugin', 'WF_API_BASE_URL')
postMessage('dataStorePlugin', 'WF_ACCESS_ID')
postMessage('dataStorePlugin', 'WF_ACCESS_KEY')
postMessage('dataStorePlugin', 'WF_ACCESS_EXPIRE')
}
const init = (params) => {
for (let key in params) {
localStorage.setItem(key, params[key])
}
}
const getPluginData = () => {
if (getSystem() !== 'PC') {
test()
statement()
}
}
export default {
postMessage,
getPluginData
}