const Autel = {
/**
* 向主页面传递参数
* @param {String} message
* @param {String} key
*/
emitParentMessage(key, message) {
window.parent.postMessage({ [key]: message }, '*')
},
/**
* 向子页面传递参数
* @param {String} message
* @param {String} key
*/
emitChildrenMessage(key, message, index) {
window.frames[index].postMessage({ [key]: message }, '*')
},
/**
* 监听获取参数
* @returns {callback}
*/
onMessage(key, callback) {
return new Promise(resolve => {
window.addEventListener(
'message',
function(e) {
if (key && e.data[key]) {
resolve(e.data)
}
},
false
)
})
},
/**
* 判断 是否被 ifame 嵌套
* true 表示未被嵌套, false 表示已被嵌套
* @returns {boolean}
*/
isWithinOrOuter() {
return window.self === window.top
},
/**
* 获取token
* @returns {string}
*/
async getAutelToken() {
Autel.emitParentMessage('AutelToken', 'created')
const token = await Autel.onMessage('AutelToken').then(res => {
return res.AutelToken
})
return token
}
}
export default Autel