UNPKG

olympus-r-17plugins

Version:

A plugin of Olympus for 17zuoye.

100 lines (98 loc) 4.51 kB
import Olympus, { core } from 'olympus-r/Olympus'; import EgretBridge from 'olympus-r-egret/EgretBridge'; import DOMBridge from 'olympus-r-dom/DOMBridge'; import { EgretMediatorClass } from 'olympus-r-egret/egret/injector/Injector'; import { commonData } from 'olympus-r/engine/net/RequestData'; import { query } from 'olympus-r/engine/env/Query'; import NetMessage from 'olympus-r/engine/net/NetMessage'; import { environment } from 'olympus-r/engine/env/Environment'; import { wrapHost } from 'olympus-r/utils/URLUtil'; import SceneMessage from 'olympus-r/engine/scene/SceneMessage'; import Mediator from 'olympus-r/engine/mediator/Mediator'; import ResponseData from 'olympus-r/engine/net/ResponseData'; import { assetsManager, JSLoadMode } from 'olympus-r/engine/assets/AssetsManager'; import { environment17, EnvCode } from 'olympus-r-17plugins/env/Environment17'; import { initParams17 } from 'olympus-r-17plugins/env/InitParams17'; import Olympus17Plugin from 'olympus-r-17plugins/Olympus17Plugin'; import NetworkErrorCommand from './command/NetworkErrorCommand'; import GetServerResponseCommand from './command/GetServerResponseCommand'; import Homepage from './module/Homepage/Homepage'; import { EgretPrompt, DOMPrompt } from './component/Prompt'; initParams17.whenReady(() => { if (window["FastClick"]) { window["FastClick"].attach(document.body); } Olympus.startup({ bridges: [ new DOMBridge({ container: "#rootDOM", promptClass: DOMPrompt, maskData: { loadingAlpha: 0, }, }), new EgretBridge({ width: 720, height: 1280, pathPrefix: "egret/", container: "#rootEgret", backgroundColor: 0xffffff, scaleMode: egret.StageScaleMode.FIXED_NARROW, renderMode: 1, maskData: { loadingAlpha: 0 }, promptClass: EgretPrompt, }), ], firstModule: Homepage, loadElement: "#loading", env: initParams17.getParam("server_type"), hostsDict: { dev: ["http://www.test.17zuoye.net"], test: ["https://www.test.17zuoye.net"], staging: ["https://www.staging.17zuoye.net"], prod: ["https://www.17zuoye.com"], }, cdnsDict: { test: initParams17.getParam("cdn_list") || [initParams17.getParam("img_domain") || "https://cdn-cnc.test.17zuoye.net/"], staging: initParams17.getParam("cdn_list") || [initParams17.getParam("img_domain") || "https://cdn-cnc.staging.17zuoye.net/"], prod: initParams17.getParam("cdn_list") || [initParams17.getParam("img_domain") || "https://cdn-cnc.17zuoye.cn/"], }, plugins: [ // 设置 appName new Olympus17Plugin("$a-{appName}"), ], preloads: [ "./assets/Prompt.html", ], onInited: () => { // 仅在test和staging环境使用Eruda if(environment17.envCode === EnvCode.test || environment17.envCode === EnvCode.staging) { assetsManager.loadJsFiles([{ url: "http://cdn.jsdelivr.net/npm/eruda", mode: JSLoadMode.TAG }], (err?:Error)=>{ const eruda:any = window["eruda"]; eruda && eruda.init(); }); } // 给消息协议添加 session_key const session_key: string = initParams17.getParam("session_key"); if (session_key) { commonData.session_key = session_key; } // 篡改Mediator的onGetResponses基类方法,统一判断初始化返回值是否成功 Mediator.prototype.onGetResponses = function(responses:ResponseData[]):boolean { let success:boolean = true; responses.forEach(response=>success = success && response["success"]); return !success; }; // 注册网络错误命令 core.mapCommand(NetMessage.NET_ERROR, NetworkErrorCommand); // 注册服务器返回命令 core.mapCommand(NetMessage.NET_RESPONSE, GetServerResponseCommand); }, }); });