olympus-r-17plugins
Version:
A plugin of Olympus for 17zuoye.
102 lines (101 loc) • 3.51 kB
JavaScript
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);