diff --git a/README.md b/README.md new file mode 100644 index 0000000..9e28197 --- /dev/null +++ b/README.md @@ -0,0 +1,32 @@ +# 精简版本的jcfw + + + + + +各平台分别打包, 打包命令如下: + +```bash + # 第一次需要运行如下命令 + npm install + + # 生成开发包, plat可选参数: h5,oppp, qqmini, tt, wechat, vivo, xiaomi, huawei + gulp dev --plat wechat + + # 生成dist包 + gulp --plat wechat +``` + +使用方法: + +打包对应平台的包, 比如 jcfw.wechat.min.js + +```js + +require('jcfw.wechat.min.js'); + +``` + + + + diff --git a/jcfw/common/httpclient.js b/jcfw/common/httpclient.js index e0d7962..45d26cf 100644 --- a/jcfw/common/httpclient.js +++ b/jcfw/common/httpclient.js @@ -18,7 +18,7 @@ module.exports = { }, httpPost(url, postdata, cbRes, cbErr, contentType) { - contentType = contentType || 'application/json'; + contentType = contentType || 'text/plain;charset=UTF-8'; return this.httpsend(url, postdata, cbRes, cbErr, 'POST', contentType); }, diff --git a/jcfw/jcfw.js b/jcfw/jcfw.js index a89e280..0d4b6c1 100644 --- a/jcfw/jcfw.js +++ b/jcfw/jcfw.js @@ -86,7 +86,9 @@ var JCFW = { QQ_MINI: 6007, TEST: 6000, HUAWEI: 6008, - XIAOMI: 6009 + XIAOMI: 6009, + CRAZY_GAME: 7003, + IWEI: 7004, }, __getUrl(isoffical, key, env) { @@ -120,7 +122,7 @@ var JCFW = { * @param {object} cfgsuccesscb: 后台配置成功回调 * @param {object} cfgfailcb: 后台配置失败回调 * @param {any} jcdev: 是否是开发环境 - * @param {string} appid: 游戏的appid + * @param {string} appid: 游戏的appid, 华为快游戏须传此字段, 疯狂游乐场须将他们定义的游戏id通过此字段传进来 */ init({channelid, gameid, isoffical, response, env, adparam, cfgsuccesscb, cfgfailcb, jcdev, appid}) { this.channelID = parseInt(channelid); diff --git a/jcfw/platform/plat.js b/jcfw/platform/plat.js index 662ed30..d2bbddd 100644 --- a/jcfw/platform/plat.js +++ b/jcfw/platform/plat.js @@ -1,58 +1,28 @@ -var PLAT_XM = { +var PLAT_HUAWEI = { SHARE_FAIL: 25, SHARE_TIME: 3000, + appid: '', shareCount: {}, - getLaunchInfo() { - return null; + getSystemInfoAsync(successcb, failcb) { + hbs.getSystemInfo({ + success : function (res) { + console.log("getSystemInfo success res = " + res.brand); + successcb && successcb(res); + }, + fail:function(){ + console.log("getSystemInfo fail"); + failcb && failcb(); + } + }); }, - getSystemInfo() { - return qg.getSystemInfoSync(); - }, - /** example: - * - * @param {object} btninfo : - * { - * width: 100, - * height: 100, - * name: logo.png - * } - * @param {function} cb - */ getUserInfo(btninfo, cb) { - this._usercb = cb; - - let _flag = 0; - - if (btninfo && btninfo.flag) { - _flag = btninfo.flag; - } - - let self = this; - let getInfo = function () { - console.log('[xm.getUserInfo]'); - qg.getUserInfo({ - success: function (res) { - res.flag = _flag; - self._usercb && self._usercb(res, 1); - }, - fail: function (res) { - res.flag = _flag; - console.log(res); - self._usercb && self._usercb(res, -1, null, _flag); - } - }) - } - getInfo(); + cb && cb(null, -1000); }, destoryAuth() { - if (this.btnAuthorize) { - this.btnAuthorize.destroy && this.btnAuthorize.destroy(); - this.btnAuthorize = null; - } }, setUserInfo(dstinfo, ptinfo) { @@ -65,17 +35,13 @@ var PLAT_XM = { }, 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) { + init(owner, channelid, appid) { this._owner = owner; this._ptid = channelid; + this.appid = appid; }, bindController(ctrl) { @@ -83,9 +49,7 @@ var PLAT_XM = { }, 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; @@ -94,8 +58,7 @@ var PLAT_XM = { if (!title && this._exshareinfo) { title = this._exshareinfo.title; } - this.PTShare(title, img, sp); - this._checkShareRes(st, stype, sp, uuid, successcb, failcb); + this.PTShare(title, img, sp, successcb, failcb); }, captureShare(rc, title, stype, param, successcb, failcb, exinfo) { @@ -104,49 +67,6 @@ var PLAT_XM = { 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) { @@ -154,7 +74,23 @@ var PLAT_XM = { }, PTShare(content, imgurl, param, successcb, failcb) { - successcb && successcb(); + hbs.systemShare({ + type: 'text/html', + data: content, + success:function(){ + successcb && successcb(); + }, + fail:function(erromsg, errorcode){ + console.log('share fail --- ' + errorcode + ':' + erromsg) + failcb && failcb(-3, param); + }, + cancel:function(data){ + console.log("share cancel:" + data) + failcb && failcb(-3, param); + }, + complete:function(){console.log('share complete')} + }); + }, PTShareCapture(content, rc, param, successcb, failcb) { @@ -162,12 +98,10 @@ var PLAT_XM = { }, PTOpenKF(cb, info) { - - }, PTCreateGameClubButton(nleft, ntop, nwidth) { - + return null; }, /** * @param {string} str 显示的文字 @@ -177,44 +111,32 @@ var PLAT_XM = { * none: 不显示图标,此时 title 文本最多可显示两行 * */ PTShowToast(str, icon) { + hbs.showToast({ + title: str, + icon: 'none' + }); }, PTGotoApp(appid, apppath, exobj, cb, qdid, env, acontent) { - }, PTLogin(info, successcb, failcb) { var self = this; - qg.login({ + hbs.gameLogin({ + forceLogin: 1, + appid: this.appid, success: function (res) { - self._owner.login.login({ - token: res.data.appAccountId, - successcb: function (obj) { - obj.clientSession = res.data.session; - successcb && successcb(obj); - }, failcb - }); + console.log('[hbs]hbs login success'); + self._owner.login.login({token: res.playerId, successcb, failcb}); }, fail: function (res) { - console.log('[xm]login fail!'); - failcb && failcb(0, res ? res.errcode : -1, res ? res.errMsg : ''); + console.log('[hbs]login fail!', res); + failcb && failcb(0, res ? res.errcode : -1, res ? res.data : ''); } }); }, - PTSetClipboardData: function (content, successcb, failcb) { - - }, - - PTGetClipboardData: function (successcb, failcb) { - - }, - - PTPreviewImage(imgurl, successcb, failcb) { - - }, - //广告相关 PTInitADService() { @@ -225,48 +147,37 @@ var PLAT_XM = { }, PTCreateVideoAD(adid) { - if (qg.createRewardedVideoAd) { - let data = { - adUnitId: adid - }; - return qg.createRewardedVideoAd(data); - } return null; }, PTCreateInsertAD(adid) { - if (qg.createInterstitialAd) { - let data = { - adUnitId: adid - }; - return qg.createInterstitialAd(data); - } return null; }, PTSetVideoADCallback(adobj, adowner, cb) { - let closeCb = function (res) { - console.log('[ad]onClose:' + JSON.stringify(res)); - // 用户点击了【关闭广告】按钮 - // 小于 2.1.0 的基础库版本,res 是一个 undefined - if (res && res.isEnded || res === undefined) { - // 正常播放结束,可以下发游戏奖励 - cb && cb(res.isEnded, adowner, res); - } else { - // 播放中途退出,不下发游戏奖励 - cb && cb(false, adowner, res); - } - // ad.offClose && ad.offClose(closeCb); - }; - adobj.onClose && adobj.onClose(closeCb); + }, PTVibrateShort(successcb, failcb) { - + hbs.vibrateShort({ + success: () => { + successcb && successcb(); + }, + fail: () => { + failcb && failcb(); + } + }) }, PTVibrateLong(successcb, failcb) { - + hbs.vibrateLong({ + success: () => { + successcb && successcb(); + }, + fail: () => { + failcb && failcb(); + } + }) }, /** @@ -277,59 +188,53 @@ var PLAT_XM = { }, PTPostOpenMsg(msg) { - + const openDataContext = this.PTOpenDataContext(); + openDataContext && openDataContext.postMessage(msg); }, // 排行榜相关 saveRankData(nscore, nmoney, stitle) { - + const openDataContext = this.PTOpenDataContext(); + openDataContext && openDataContext.postMessage({ + type: 'save_data', + score: nscore, + money: nmoney, + title: stitle + }); }, showRankData() { - + const openDataContext = this.PTOpenDataContext(); + openDataContext && openDataContext.postMessage({ + type: 'friends_all' + }); }, hideRankData() { - + const openDataContext = this.PTOpenDataContext(); + openDataContext && openDataContext.postMessage({ + type: 'friends_all_hide' + }); }, prevRankPage() { - + const openDataContext = this.PTOpenDataContext(); + openDataContext && openDataContext.postMessage({ + type: 'pagechange', + prev: 1 + }); }, nextRankPage() { - + const openDataContext = this.PTOpenDataContext(); + openDataContext && openDataContext.postMessage({ + type: 'pagechange', + next: 1 + }); }, PTADWatch(adid, successcb, failcb) { - let videoAd = qg.createRewardedVideoAd({ - adUnitId: adid - }); - - videoAd.onLoad = function () { - videoAd.offLoad(this); - videoAd.show(); - } - var errorCb = function (res) { - console.log('[videoad]onerror:' + JSON.stringify(res)); - failcb && failcb(adid, res, true, adid); - videoAd.offError(this); - } - videoAd.onError(errorCb); - - var getFun = function (res) { - if (res.isEnded) { - try { - successcb && successcb(adid, res, adid); - } catch (e) { - - } - cb = null; - } - videoAd.offClose(this); - } - videoAd.onClose(getFun); - videoAd.load(); + failcb && failcb(adid, {}, true, adid); }, setLocalStorage(key, value) { @@ -353,4 +258,4 @@ var PLAT_XM = { } }; -module.exports = PLAT_XM; +module.exports = PLAT_HUAWEI; diff --git a/jcfw/platform/plat_crazygame.js b/jcfw/platform/plat_crazygame.js new file mode 100644 index 0000000..4dc82a5 --- /dev/null +++ b/jcfw/platform/plat_crazygame.js @@ -0,0 +1,320 @@ +var getParameter = function(t) { + var e = window.location.search, + i = new RegExp(t + "=([^&?]*)", "ig"); + return e.match(i) ? e.match(i)[0].substr(t.length + 1) : null +} +var PLAT_CRAZY = { + 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._platGameId = appId; + this.sdk = window.HORTOR_AGENT; + this.sdk.init(function (status) { + console.log('crazy game init with status: ' + status); + }); + }, + + 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) { + if (!normalinfo) { + return; + } + if (!this._exshareinfo) { + this._exshareinfo = normalinfo; + } else { + if (normalinfo.title && this._exshareinfo.title != normalinfo.title) { + this._exshareinfo.title = normalinfo.title; + } + if (normalinfo.imgurl && this._exshareinfo.imgurl != normalinfo.imgurl) { + this._exshareinfo.imgurl = normalinfo.imgurl; + } + } + this.sdk.config({ + gameId: this._platGameId, + share: { + timeline: { + title: this._exshareinfo.title, + imgUrl: this._exshareinfo.imgurl, + success: function (data) { + console.log(data); + }, + cancel: function (data) { + console.log(data); + } + }, + friend: { + title: this._exshareinfo.title, + desc: this._exshareinfo.title, + imgUrl: this._exshareinfo.imgurl, + success: function (data) { + console.log(data); + }, + cancel: function (data) { + console.log(data); + } + }, + shareCustomParam:{//配置⾃自定义参数 + // cp_fromid: this._owner.accountID,//⾃自定义参数key必须以cp_开始 + // cp_fromname: this._owner.nickName, + } + } + }); + }, + + 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) { + }, + + PTGotoApp(appid, apppath, exobj, cb, qdid, env, acontent) { + + }, + + PTLogin(info, successcb, failcb) { + var self = this; + var token = getParameter('token'); + if (!token) { + return failcb && failcb(0, -1, '未找到有效的token'); + } + self._owner.login.login({ + token: token, + successcb, failcb + }); + }, + + 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) { + + }, + + PTVibrateLong(successcb, failcb) { + + }, + + /** + * @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); + } + } +}; + +module.exports = PLAT_CRAZY; diff --git a/jcfw/platform/plat_huawei.js b/jcfw/platform/plat_huawei.js index f505167..d2bbddd 100644 --- a/jcfw/platform/plat_huawei.js +++ b/jcfw/platform/plat_huawei.js @@ -113,7 +113,7 @@ var PLAT_HUAWEI = { PTShowToast(str, icon) { hbs.showToast({ title: str, - icon: icon + icon: 'none' }); }, diff --git a/jcfw/platform/plat_iwei.js b/jcfw/platform/plat_iwei.js new file mode 100644 index 0000000..c911572 --- /dev/null +++ b/jcfw/platform/plat_iwei.js @@ -0,0 +1,356 @@ +var PLAT_IWEI = { + SHARE_FAIL: 25, + SHARE_TIME: 3000, + shareCount: {}, + + getLaunchInfo() { + return null; + }, + + getSystemInfo() { + return qg.getSystemInfoSync(); + }, + + /** example: + * + * @param {object} btninfo : + * { + * width: 100, + * height: 100, + * name: logo.png + * } + * @param {function} cb + */ + getUserInfo(btninfo, cb) { + this._usercb = cb; + + let _flag = 0; + + if (btninfo && btninfo.flag) { + _flag = btninfo.flag; + } + + let self = this; + let getInfo = function () { + console.log('[xm.getUserInfo]'); + qg.getUserInfo({ + success: function (res) { + res.flag = _flag; + self._usercb && self._usercb(res, 1); + }, + fail: function (res) { + res.flag = _flag; + console.log(res); + self._usercb && self._usercb(res, -1, null, _flag); + } + }) + } + getInfo(); + }, + + destoryAuth() { + if (this.btnAuthorize) { + this.btnAuthorize.destroy && this.btnAuthorize.destroy(); + this.btnAuthorize = null; + } + }, + + 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) { + this._owner = owner; + this._ptid = channelid; + }, + + 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) { + }, + + PTGotoApp(appid, apppath, exobj, cb, qdid, env, acontent) { + + + }, + + PTLogin(info, successcb, failcb) { + var self = this; + qg.login({ + success: function (res) { + self._owner.login.login({ + token: res.data.appAccountId, + successcb: function (obj) { + obj.clientSession = res.data.session; + successcb && successcb(obj); + }, failcb + }); + }, + fail: function (res) { + console.log('[xm]login fail!'); + failcb && failcb(0, res ? res.errcode : -1, res ? res.errMsg : ''); + } + }); + }, + + PTSetClipboardData: function (content, successcb, failcb) { + + }, + + PTGetClipboardData: function (successcb, failcb) { + + }, + + PTPreviewImage(imgurl, successcb, failcb) { + + }, + + //广告相关 + PTInitADService() { + + }, + + PTCreateBannerAD(adid, st) { + return null; + }, + + PTCreateVideoAD(adid) { + if (qg.createRewardedVideoAd) { + let data = { + adUnitId: adid + }; + return qg.createRewardedVideoAd(data); + } + return null; + }, + + PTCreateInsertAD(adid) { + if (qg.createInterstitialAd) { + let data = { + adUnitId: adid + }; + return qg.createInterstitialAd(data); + } + return null; + }, + + PTSetVideoADCallback(adobj, adowner, cb) { + let closeCb = function (res) { + console.log('[ad]onClose:' + JSON.stringify(res)); + // 用户点击了【关闭广告】按钮 + // 小于 2.1.0 的基础库版本,res 是一个 undefined + if (res && res.isEnded || res === undefined) { + // 正常播放结束,可以下发游戏奖励 + cb && cb(res.isEnded, adowner, res); + } else { + // 播放中途退出,不下发游戏奖励 + cb && cb(false, adowner, res); + } + // ad.offClose && ad.offClose(closeCb); + }; + adobj.onClose && adobj.onClose(closeCb); + }, + + PTVibrateShort(successcb, failcb) { + + }, + + PTVibrateLong(successcb, failcb) { + + }, + + /** + * @return {null} + */ + PTOpenDataContext() { + return null; + }, + + PTPostOpenMsg(msg) { + + }, + + // 排行榜相关 + saveRankData(nscore, nmoney, stitle) { + + }, + + showRankData() { + + }, + + hideRankData() { + + }, + + prevRankPage() { + + }, + + nextRankPage() { + + }, + + PTADWatch(adid, successcb, failcb) { + let videoAd = qg.createRewardedVideoAd({ + adUnitId: adid + }); + + videoAd.onLoad = function () { + videoAd.offLoad(this); + videoAd.show(); + } + var errorCb = function (res) { + console.log('[videoad]onerror:' + JSON.stringify(res)); + failcb && failcb(adid, res, true, adid); + videoAd.offError(this); + } + videoAd.onError(errorCb); + + var getFun = function (res) { + if (res.isEnded) { + try { + successcb && successcb(adid, res, adid); + } catch (e) { + + } + cb = null; + } + videoAd.offClose(this); + } + videoAd.onClose(getFun); + videoAd.load(); + }, + + 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); + } + } +}; + +module.exports = PLAT_IWEI; diff --git a/jcfw/platform/plat_oppo.js b/jcfw/platform/plat_oppo.js index 0860417..05cc5c5 100644 --- a/jcfw/platform/plat_oppo.js +++ b/jcfw/platform/plat_oppo.js @@ -96,9 +96,10 @@ var PLAT_OPPO = { }, PTShowToast(str) { - if (this.isThisPT()) { - - } + qg.showToast({ + title: str, + icon: 'none' + }); }, PTGotoApp(appid, apppath, exobj, cb, qdid) { diff --git a/jcfw/platform/plat_xiaomi.js b/jcfw/platform/plat_xiaomi.js index 662ed30..1391120 100644 --- a/jcfw/platform/plat_xiaomi.js +++ b/jcfw/platform/plat_xiaomi.js @@ -177,6 +177,10 @@ var PLAT_XM = { * none: 不显示图标,此时 title 文本最多可显示两行 * */ PTShowToast(str, icon) { + qg.showToast({ + title: str, + icon: 'none' + }); }, PTGotoApp(appid, apppath, exobj, cb, qdid, env, acontent) {