/** * 小米Native with 白鹭 * */ var Plat_egret = { SHARE_FAIL: 25, SHARE_TIME: 3000, shareCount: {}, getLaunchInfo() { return null; }, getSystemInfo() { return null; }, /** example: * * @param {object} btninfo : * { * width: 100, * height: 100, * name: logo.png * } * @param {function} cb */ getUserInfo(btninfo, cb) { }, destoryAuth() { }, setUserInfo(dstinfo, ptinfo) { dstinfo.nickname = ptinfo.nickName; dstinfo.country = ptinfo.country; dstinfo.province = ptinfo.province; dstinfo.city = ptinfo.city; dstinfo.avatar_url = ptinfo.avatarUrl; dstinfo.sex = ptinfo.gender; }, setTokenInfo(dstinfo, tokeninfo) { if (tokeninfo && tokeninfo.rawData) { dstinfo.rawData = tokeninfo.rawData; dstinfo.signature = tokeninfo.signature; dstinfo.encryptedData = tokeninfo.encryptedData; dstinfo.iv = tokeninfo.iv; } }, init(owner, channelid, appId) { this._owner = owner; this._ptid = channelid; this.platUid = ''; this.platUserName = ''; }, bindController(ctrl) { this._man = ctrl; }, commonShare(aimg, atitle, stype, param, successcb, failcb, exinfo) { var st = (new Date()).getTime(); let sp = this._owner.makeShareParam(stype, param, exinfo); let uuid = this._owner.currUUID(); let img = aimg; if (!img && this._exshareinfo) { img = this._exshareinfo.imgurl; } let title = atitle; if (!title && this._exshareinfo) { title = this._exshareinfo.title; } this.PTShare(title, img, sp); this._checkShareRes(st, stype, sp, uuid, successcb, failcb); }, captureShare(rc, title, stype, param, successcb, failcb, exinfo) { var st = (new Date()).getTime(); let sp = this._owner.makeShareParam(stype, param, exinfo); let uuid = this._owner.currUUID(); this.PTShareCapture(title, rc, sp); this._checkShareRes(st, stype, sp, uuid, successcb, failcb); }, _checkShareRes(starttime, sharetype, param, tokenid, successcb, failcb) { if (!this._man) { try { failcb && failcb(-100, param, tokenid); } catch (err) { } return; } this._man.scheduleOnce(() => { let dt = (new Date()).getTime() - starttime; console.log(dt); if (this.shareCount[sharetype] == undefined) { this.shareCount[sharetype] = false; } if (this.shareCount[sharetype] == false && Math.random() * 100 > this.SHARE_FAIL) { this.shareCount[sharetype] = true; try { failcb && failcb(-1, param, tokenid, dt); } catch (err) { } return; } if (dt > this.SHARE_TIME) { try { successcb && successcb(param, tokenid, dt); } catch (err) { } } else { try { failcb && failcb(-2, param, tokenid, dt); } catch (err) { } } }, 0.5); }, PTInitShare(normalinfo) { }, PTShare(content, imgurl, param, successcb, failcb) { successcb && successcb(); }, PTShareCapture(content, rc, param, successcb, failcb) { successcb && successcb(); }, PTOpenKF(cb, info) { }, PTCreateGameClubButton(nleft, ntop, nwidth) { }, /** * @param {string} str 显示的文字 * @param {icon} icon 图标类型 默认'none'; * success: 显示成功图标 * loading: 显示加载图标 * none: 不显示图标,此时 title 文本最多可显示两行 * */ PTShowToast(str, icon) { egret.ExternalInterface.call("showToast", str); }, PTGotoApp(appid, apppath, exobj, cb, qdid, env, acontent) { }, PTLogin(info, successcb, failcb) { var self = this; egret.ExternalInterface.addCallback("sendUidToJS", function (message) { console.log('login message from native: ' + message); let obj = JSON.parse(message); let loginData = { successcb, failcb }; Object.assign(loginData, obj); self._owner.login.login(loginData); }); egret.ExternalInterface.addCallback("loginOut", function (message) { console.log('login out from native: ' + message); this.reloadGame(); }); egret.ExternalInterface.addCallback("loginCancel", function (message) { console.log('login cancel from native: ' + message); failcb && failcb(-1, 0, 'user cancel'); }); egret.ExternalInterface.call("getUid", ""); }, PTSetClipboardData: function (content, successcb, failcb) { }, PTGetClipboardData: function (successcb, failcb) { }, PTPreviewImage(imgurl, successcb, failcb) { }, //广告相关 PTInitADService() { }, PTCreateBannerAD(adid, st) { return null; }, PTCreateVideoAD(adid) { return null; }, PTCreateInsertAD(adid) { return null; }, PTSetVideoADCallback(adobj, adowner, cb) { }, PTVibrateShort(successcb, failcb) { egret.ExternalInterface.call("vibrate", "0"); }, PTVibrateLong(successcb, failcb) { egret.ExternalInterface.call("vibrate", "1"); }, /** * @return {null} */ PTOpenDataContext() { return null; }, PTPostOpenMsg(msg) { }, // 排行榜相关 saveRankData(nscore, nmoney, stitle) { }, showRankData() { }, hideRankData() { }, prevRankPage() { }, nextRankPage() { }, PTADWatch(adid, successcb, failcb) { }, setLocalStorage(key, value) { if (window.localStorage) { localStorage.setItem(key, value); } }, getLocalStorage(key) { if (window.localStorage) { return localStorage.getItem(key); } else { return null; } }, removeStorage(key) { if (window.localStorage) { localStorage.removeItem(key); } }, /** * 上报角色信息 * */ reportRoleInfo(data) { return new Promise((resolve, reject) => { let dataStr = JSON.stringify(data); egret.ExternalInterface.call("reportRoleInfo", dataStr); resolve(); }); }, /** * 重新加载游戏 */ reloadGame() { window.location.reload(); }, /** * * { * orderId: '', * productCode: '', * count: 1 * } */ pay(data) { let str = JSON.stringify(data); return new Promise((resolve, reject) => { egret.ExternalInterface.addCallback("payResult", function (message) { console.log('message from native: ' + message); try { let data = JSON.parse(message); if (data.errcode) { reject && reject(data) } else { resolve && resolve(data); } } catch (err) { reject && reject({errcode: 101, errmsg: '解析支付结果出错'}) } }); egret.ExternalInterface.call("pay", str); }); } }; module.exports = Plat_egret;