UNPKG

olympus-r-17plugins

Version:

A plugin of Olympus for 17zuoye.

102 lines (101 loc) 3.51 kB
import * as tslib_1 from "tslib"; import { core } from "olympus-r/core/Core"; import { Injectable } from "olympus-r/core/injector/Injector"; import Olympus17Plugin from '../Olympus17Plugin'; import Shell17 from './Shell17'; import Shell17IOS from './Shell17IOS'; // 添加引用,保证插件初始化提前执行 Olympus17Plugin; /** * @author Raykid * @email initial_r@qq.com * @create date 2017-10-27 * @modify date 2017-10-27 * * 专为获取一起作业的getInitParams参数而做的工具 */ var InitParams17 = /** @class */ (function () { function InitParams17() { } /** * 在一起作业外壳准备好之后调用回调方法 * * @param {()=>void} callback 回调方法 * @memberof InitParams17 */ // public whenReady(callback:()=>void):void // { // var ua:string = navigator.userAgent; // var isIn17Mobile:boolean = ( // /17student|17teacher|17parent/i.test(ua) && // /iPhone|iPad|iPod|iOS|Android/i.test(ua) // ); // if(!isIn17Mobile) callback(); // else testReady(); // function testReady():void // { // // 测试外壳是否准备好了 // if(windowExternal.getParam("getInitParams") instanceof Function) // // 准备好了,调用回调 // callback(); // else // // 没准备好,100毫秒后再来 // setTimeout(testReady, 100, callback); // } // } InitParams17.prototype.whenReady = function (callback) { var userAgent = navigator.userAgent; if (/17student|17teacher|17parent/i.test(userAgent)) { if (/iPhone|iPad|iPod|iOS/i.test(navigator.userAgent)) { iOSTestReady(); } else if (/Android/i.test(userAgent)) { androidTestReady(); } else { defaultTestReady(); } } else { defaultTestReady(); } function defaultTestReady() { var shell = core.getInject(Shell17); shell.getInitParams(); callback(); } function androidTestReady() { if (window['external'] && window['external']['getInitParams'] instanceof Function) { var shell = core.getInject(Shell17); shell.getInitParams(); callback(); } else { setTimeout(androidTestReady, 100); } } function iOSTestReady() { var shell17IOS = core.getInject(Shell17IOS); if (window['external'] && window['external']['getInitParams'] instanceof Function) { shell17IOS.getInitParams(); callback(); } else if (window['webkit'] && window['webkit']['messageHandlers']) { shell17IOS.isWebkit = true; shell17IOS.getInitParams().then(function () { callback(); }); } else { setTimeout(iOSTestReady, 100); } } }; InitParams17 = tslib_1.__decorate([ Injectable ], InitParams17); return InitParams17; }()); export default InitParams17; /** 再额外导出一个单例 */ export var initParams17 = core.getInject(InitParams17);