'use strict';
/* 钱香借款端app相关 */
/**
* @module qianxiang_h5.plus
* @description 请在whale.plus模块内调用
*/
import {isFunction} from '../lib/utils';
import {appShareCache, basicShareConfig} from './share';
/*用于钱香app网页*/
window.QxAppDomain = window.QxApi || window; // 安卓是QxApi ios是window域
const userEventMap = {
EVENT_QX_INFO: 'EVENT_QX_INFO', // 获取到了app info 事件
EVENT_QX_TOKEN: 'EVENT_QX_TOKEN' // 获取到了token事件
};
function getJSON(str) {
let json = null;
try {
json = JSON.parse(str);
} catch (e) {
console.log('getJSON: 参数错误' + str);
}
return json;
}
function bindOneListener(userEventName, callback) {
let handle = function (e) {
let data = e.detail;
if (isFunction(callback)) {
callback(data);
}
window.removeEventListener(userEventName, handle);
};
window.addEventListener(userEventName, handle);
}
/**
* 获取app信息
* @param {Function} callback 回调函数(接收参数info如下表)
* @property {String} info.OSName 系统名
* @property {String} info.OSVersion 系统版本
* @property {String} info.APPVersion app版本
* @property {String} info.DeviceType 设备类型
* @example
* if(window.getQxApiInfo){
window.getQxApiInfo(function(data){
console.log(data);
//输出 "{'OSName':'IOS','OSVersion':'9.3','APPVersion':'1.1.7','DeviceType':'huawei G3'}"
});
}
*/
function getQxAppInfo(callback) {
bindOneListener(userEventMap.EVENT_QX_INFO, callback);
QxAppDomain.getQxAppInfo && QxAppDomain.getQxAppInfo();
}
/**
* 获取app token
* @param {Function} callback 回调函数(接收参数token如下表)
* @property {String} info token信息
* @example
* if(window.getQxToken){
window.getQxToken(function(token){
console.log(token);
//输出 "tresssdwrtdfdgghrr"
});
}
*/
function getQxToken(callback) {
bindOneListener(userEventMap.EVENT_QX_TOKEN, callback);
QxAppDomain.getQxToken && QxAppDomain.getQxToken();
}
/**
* 跳转到app页面
* @param {String} pageCode 页面id
* @wiki https://www.tapd.cn/23280401/markdown_wikis/view/#1123280401001000101
*/
function jumpToAppPage(pageCode) {
QxAppDomain.jumpToAppPage && QxAppDomain.jumpToAppPage(pageCode);
}
/**
* 设置页面标题
* @param {String} title 页面id
*/
function setPageTitle(title = '') {
QxAppDomain.setPageTitle && QxAppDomain.setPageTitle(title);
}
//回调
window.QxAppInfoCallback = function (str) {
if (str) {
// 这个暂时先不用了。
}
};
//回调
window.QxBridgeGetContent = function (flag) {
if (flag == 'fx') {
// 分享
if (appShareCache) {
QxAppDomain.showSharePanel(
appShareCache.title,
appShareCache.desc,
appShareCache.link,
appShareCache.imgUrl);
} else {
QxAppDomain.showSharePanel(
basicShareConfig.title,
basicShareConfig.desc,
basicShareConfig.link,
basicShareConfig.imgUrl);
}
}
};
// 2.4.5 之后安卓调用js都放在这个域下
window.QX_AppCallback = {
back_getQxToken: function (str) {
window.dispatchEvent(new CustomEvent(userEventMap.EVENT_QX_TOKEN, {'detail': str}));
},
back_getQxAppInfo: function (str) {
let json = getJSON(str);
window.dispatchEvent(new CustomEvent(userEventMap.EVENT_QX_INFO, {'detail': json}));
}
};
export {
getQxAppInfo,
getQxToken,
jumpToAppPage,
setPageTitle
};