UNPKG

ng-yunzai-mobile

Version:

1. 适配yunzai_uni_app_x

191 lines 11.9 kB
/** * @fileoverview added by tsickle * Generated from: devices/webview-uniappx.service.ts * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { Injectable } from '@angular/core'; import * as i0 from "@angular/core"; /** * @record */ function WebViewMessage() { } if (false) { /** @type {?} */ WebViewMessage.prototype.action; /** @type {?|undefined} */ WebViewMessage.prototype.callbackId; /** @type {?|undefined} */ WebViewMessage.prototype.params; } /** * @record */ function AppResponse() { } if (false) { /** @type {?} */ AppResponse.prototype.callbackId; /** @type {?} */ AppResponse.prototype.data; /** @type {?} */ AppResponse.prototype.status; } /** * @record */ export function AppUserInfo() { } if (false) { /** @type {?} */ AppUserInfo.prototype.token; /** @type {?} */ AppUserInfo.prototype.tenantId; /** @type {?} */ AppUserInfo.prototype.userId; /** @type {?} */ AppUserInfo.prototype.username; /** @type {?} */ AppUserInfo.prototype.realname; /** @type {?} */ AppUserInfo.prototype.userCode; /** @type {?} */ AppUserInfo.prototype.userType; /** @type {?} */ AppUserInfo.prototype.deptId; /** @type {?} */ AppUserInfo.prototype.deptName; } export class WebViewAppCommService { constructor() { // 回调管理池 this.callbackMap = new Map(); this.callbackId = 0; // JSBridge 是否就绪 this.bridgeReady = false; this.initBridgeListener(); } /** * 初始化监听 UniApp JSBridge 就绪 * @private * @return {?} */ initBridgeListener() { if (((/** @type {?} */ (window))).uni) { ((/** @type {?} */ (window))).handleAppMessage = this.handleAppMessage.bind(this); this.bridgeReady = true; } } /** * 统一发送消息给 App * @template T * @param {?} param * @return {?} */ postMessage(param) { return new Promise((/** * @param {?} resolve * @param {?} reject * @return {?} */ (resolve, reject) => { // 桥接未就绪 if (!this.bridgeReady) { reject(new Error('JSBridge 未初始化')); return; } // 生成唯一回调 ID /** @type {?} */ const cid = `cb_${this.callbackId++}`; param.callbackId = cid; // 存入回调 this.callbackMap.set(cid, (/** * @param {?} data * @param {?} status * @return {?} */ (data, status) => { this.callbackMap.delete(cid); // 执行后立即删除 if (status === 'success') resolve(data); else reject(new Error('App 返回失败')); })); uni.webView.postMessage({ data: param }); })); } /** * 接收 App 发来的消息(全局挂载) * @private * @param {?} res * @return {?} */ handleAppMessage(res) { /** @type {?} */ const callback = this.callbackMap.get(res.callbackId); if (callback) { callback(res.data, res.status); } } /** * 【核心方法】从 App 获取用户信息 * @return {?} */ getUserInfo() { /** @type {?} */ const param = { action: 'getUserInfo', callbackId: '', params: {} }; return this.postMessage(param); } /** * 退出登录 * @return {?} */ logout() { /** @type {?} */ const param = { action: 'logout', callbackId: '', params: {} }; this.postMessage(param); } /** * 网页跳转 * @param {?} url * @return {?} */ navigateTo(url) { uni.navigateTo({ url: '/pages/public-web-view/public-web-view?url=' + encodeURIComponent(url) }); } } WebViewAppCommService.decorators = [ { type: Injectable, args: [{ providedIn: 'root' },] } ]; /** @nocollapse */ WebViewAppCommService.ctorParameters = () => []; /** @nocollapse */ WebViewAppCommService.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function WebViewAppCommService_Factory() { return new WebViewAppCommService(); }, token: WebViewAppCommService, providedIn: "root" }); if (false) { /** * @type {?} * @private */ WebViewAppCommService.prototype.callbackMap; /** * @type {?} * @private */ WebViewAppCommService.prototype.callbackId; /** * @type {?} * @private */ WebViewAppCommService.prototype.bridgeReady; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2Vidmlldy11bmlhcHB4LnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZy15dW56YWktbW9iaWxlLyIsInNvdXJjZXMiOlsiZGV2aWNlcy93ZWJ2aWV3LXVuaWFwcHguc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7Ozs7O0FBSXpDLDZCQUlDOzs7SUFIQyxnQ0FBZTs7SUFDZixvQ0FBb0I7O0lBQ3BCLGdDQUFhOzs7OztBQUdmLDBCQUlDOzs7SUFIQyxpQ0FBbUI7O0lBQ25CLDJCQUFVOztJQUNWLDZCQUEyQjs7Ozs7QUFJN0IsaUNBVUM7OztJQVRDLDRCQUFjOztJQUNkLCtCQUFpQjs7SUFDakIsNkJBQWU7O0lBQ2YsK0JBQWlCOztJQUNqQiwrQkFBaUI7O0lBQ2pCLCtCQUFpQjs7SUFDakIsK0JBQWlCOztJQUNqQiw2QkFBZTs7SUFDZiwrQkFBaUI7O0FBTW5CLE1BQU0sT0FBTyxxQkFBcUI7SUFRaEM7O1FBTlEsZ0JBQVcsR0FBRyxJQUFJLEdBQUcsRUFBK0MsQ0FBQztRQUNyRSxlQUFVLEdBQUcsQ0FBQyxDQUFDOztRQUVmLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBSTFCLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0lBQzVCLENBQUM7Ozs7OztJQUtPLGtCQUFrQjtRQUN4QixJQUFJLENBQUMsbUJBQUEsTUFBTSxFQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUU7WUFDdkIsQ0FBQyxtQkFBQSxNQUFNLEVBQU8sQ0FBQyxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDcEUsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7U0FDekI7SUFDSCxDQUFDOzs7Ozs7O0lBS0QsV0FBVyxDQUFVLEtBQXFCO1FBQ3hDLE9BQU8sSUFBSSxPQUFPOzs7OztRQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQ3JDLFFBQVE7WUFDUixJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRTtnQkFDckIsTUFBTSxDQUFDLElBQUksS0FBSyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUM7Z0JBQ25DLE9BQU87YUFDUjs7O2tCQUVLLEdBQUcsR0FBRyxNQUFNLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBRTtZQUNyQyxLQUFLLENBQUMsVUFBVSxHQUFHLEdBQUcsQ0FBQTtZQUN0QixPQUFPO1lBQ1AsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsR0FBRzs7Ozs7WUFBRSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsRUFBRTtnQkFDekMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxVQUFVO2dCQUN4QyxJQUFJLE1BQU0sS0FBSyxTQUFTO29CQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQzs7b0JBQ25DLE1BQU0sQ0FBQyxJQUFJLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO1lBQ3JDLENBQUMsRUFBQyxDQUFDO1lBQ0gsR0FBRyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUM7Z0JBQ3RCLElBQUksRUFBRSxLQUFLO2FBQ1osQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxFQUFDLENBQUM7SUFDTCxDQUFDOzs7Ozs7O0lBS08sZ0JBQWdCLENBQUMsR0FBZ0I7O2NBQ2pDLFFBQVEsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDO1FBQ3JELElBQUksUUFBUSxFQUFFO1lBQ1osUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQ2hDO0lBQ0gsQ0FBQzs7Ozs7SUFLRCxXQUFXOztjQUNILEtBQUssR0FBbUI7WUFDNUIsTUFBTSxFQUFFLGFBQWE7WUFDckIsVUFBVSxFQUFFLEVBQUU7WUFDZCxNQUFNLEVBQUUsRUFBRTtTQUNYO1FBQ0QsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFjLEtBQUssQ0FBQyxDQUFDO0lBQzlDLENBQUM7Ozs7O0lBS0QsTUFBTTs7Y0FDRSxLQUFLLEdBQW1CO1lBQzVCLE1BQU0sRUFBRSxRQUFRO1lBQ2hCLFVBQVUsRUFBRSxFQUFFO1lBQ2QsTUFBTSxFQUFFLEVBQUU7U0FDWDtRQUNELElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDMUIsQ0FBQzs7Ozs7O0lBTUQsVUFBVSxDQUFDLEdBQVc7UUFDcEIsR0FBRyxDQUFDLFVBQVUsQ0FBQztZQUNiLEdBQUcsRUFBRSw2Q0FBNkMsR0FBRyxrQkFBa0IsQ0FBQyxHQUFHLENBQUM7U0FDN0UsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7O1lBNUZGLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQjs7Ozs7Ozs7OztJQUdDLDRDQUE2RTs7Ozs7SUFDN0UsMkNBQXVCOzs7OztJQUV2Qiw0Q0FBNEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5kZWNsYXJlIHZhciB1bmk6IGFueTtcblxuaW50ZXJmYWNlIFdlYlZpZXdNZXNzYWdlIHtcbiAgYWN0aW9uOiBzdHJpbmc7XG4gIGNhbGxiYWNrSWQ/OiBzdHJpbmc7XG4gIHBhcmFtcz86IGFueTtcbn1cblxuaW50ZXJmYWNlIEFwcFJlc3BvbnNlIHtcbiAgY2FsbGJhY2tJZDogc3RyaW5nO1xuICBkYXRhOiBhbnk7XG4gIHN0YXR1czogJ3N1Y2Nlc3MnIHwgJ2ZhaWwnO1xufVxuXG4vLyDnlKjmiLfkv6Hmga/nsbvlnovvvIjlj6/moLnmja7kvaDnmoTkuJrliqHkv67mlLnvvIlcbmV4cG9ydCBpbnRlcmZhY2UgQXBwVXNlckluZm8ge1xuICB0b2tlbjogc3RyaW5nO1xuICB0ZW5hbnRJZDogc3RyaW5nO1xuICB1c2VySWQ6IHN0cmluZztcbiAgdXNlcm5hbWU6IHN0cmluZztcbiAgcmVhbG5hbWU6IHN0cmluZztcbiAgdXNlckNvZGU6IHN0cmluZztcbiAgdXNlclR5cGU6IG51bWJlcjtcbiAgZGVwdElkOiBzdHJpbmc7XG4gIGRlcHROYW1lOiBzdHJpbmc7XG59XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFdlYlZpZXdBcHBDb21tU2VydmljZSB7XG4gIC8vIOWbnuiwg+euoeeQhuaxoFxuICBwcml2YXRlIGNhbGxiYWNrTWFwID0gbmV3IE1hcDxzdHJpbmcsIChkYXRhOiBhbnksIHN0YXR1czogc3RyaW5nKSA9PiB2b2lkPigpO1xuICBwcml2YXRlIGNhbGxiYWNrSWQgPSAwO1xuICAvLyBKU0JyaWRnZSDmmK/lkKblsLHnu6pcbiAgcHJpdmF0ZSBicmlkZ2VSZWFkeSA9IGZhbHNlO1xuXG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5pbml0QnJpZGdlTGlzdGVuZXIoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiDliJ3lp4vljJbnm5HlkKwgVW5pQXBwIEpTQnJpZGdlIOWwsee7qlxuICAgKi9cbiAgcHJpdmF0ZSBpbml0QnJpZGdlTGlzdGVuZXIoKTogdm9pZCB7XG4gICAgaWYgKCh3aW5kb3cgYXMgYW55KS51bmkpIHtcbiAgICAgICh3aW5kb3cgYXMgYW55KS5oYW5kbGVBcHBNZXNzYWdlID0gdGhpcy5oYW5kbGVBcHBNZXNzYWdlLmJpbmQodGhpcyk7XG4gICAgICB0aGlzLmJyaWRnZVJlYWR5ID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICog57uf5LiA5Y+R6YCB5raI5oGv57uZIEFwcFxuICAgKi9cbiAgcG9zdE1lc3NhZ2U8VCA9IGFueT4ocGFyYW06IFdlYlZpZXdNZXNzYWdlKTogUHJvbWlzZTxUPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIC8vIOahpeaOpeacquWwsee7qlxuICAgICAgaWYgKCF0aGlzLmJyaWRnZVJlYWR5KSB7XG4gICAgICAgIHJlamVjdChuZXcgRXJyb3IoJ0pTQnJpZGdlIOacquWIneWni+WMlicpKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgLy8g55Sf5oiQ5ZSv5LiA5Zue6LCDIElEXG4gICAgICBjb25zdCBjaWQgPSBgY2JfJHt0aGlzLmNhbGxiYWNrSWQrK31gO1xuICAgICAgcGFyYW0uY2FsbGJhY2tJZCA9IGNpZFxuICAgICAgLy8g5a2Y5YWl5Zue6LCDXG4gICAgICB0aGlzLmNhbGxiYWNrTWFwLnNldChjaWQsIChkYXRhLCBzdGF0dXMpID0+IHtcbiAgICAgICAgdGhpcy5jYWxsYmFja01hcC5kZWxldGUoY2lkKTsgLy8g5omn6KGM5ZCO56uL5Y2z5Yig6ZmkXG4gICAgICAgIGlmIChzdGF0dXMgPT09ICdzdWNjZXNzJykgcmVzb2x2ZShkYXRhKTtcbiAgICAgICAgZWxzZSByZWplY3QobmV3IEVycm9yKCdBcHAg6L+U5Zue5aSx6LSlJykpO1xuICAgICAgfSk7XG4gICAgICB1bmkud2ViVmlldy5wb3N0TWVzc2FnZSh7XG4gICAgICAgIGRhdGE6IHBhcmFtXG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiDmjqXmlLYgQXBwIOWPkeadpeeahOa2iOaBr++8iOWFqOWxgOaMgui9ve+8iVxuICAgKi9cbiAgcHJpdmF0ZSBoYW5kbGVBcHBNZXNzYWdlKHJlczogQXBwUmVzcG9uc2UpOiB2b2lkIHtcbiAgICBjb25zdCBjYWxsYmFjayA9IHRoaXMuY2FsbGJhY2tNYXAuZ2V0KHJlcy5jYWxsYmFja0lkKTtcbiAgICBpZiAoY2FsbGJhY2spIHtcbiAgICAgIGNhbGxiYWNrKHJlcy5kYXRhLCByZXMuc3RhdHVzKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICog44CQ5qC45b+D5pa55rOV44CR5LuOIEFwcCDojrflj5bnlKjmiLfkv6Hmga9cbiAgICovXG4gIGdldFVzZXJJbmZvKCk6IFByb21pc2U8QXBwVXNlckluZm8+IHtcbiAgICBjb25zdCBwYXJhbTogV2ViVmlld01lc3NhZ2UgPSB7XG4gICAgICBhY3Rpb246ICdnZXRVc2VySW5mbycsXG4gICAgICBjYWxsYmFja0lkOiAnJyxcbiAgICAgIHBhcmFtczoge31cbiAgICB9O1xuICAgIHJldHVybiB0aGlzLnBvc3RNZXNzYWdlPEFwcFVzZXJJbmZvPihwYXJhbSk7XG4gIH1cblxuICAvKipcbiAgICog6YCA5Ye655m75b2VXG4gICAqL1xuICBsb2dvdXQoKSB7XG4gICAgY29uc3QgcGFyYW06IFdlYlZpZXdNZXNzYWdlID0ge1xuICAgICAgYWN0aW9uOiAnbG9nb3V0JyxcbiAgICAgIGNhbGxiYWNrSWQ6ICcnLFxuICAgICAgcGFyYW1zOiB7fVxuICAgIH07XG4gICAgdGhpcy5wb3N0TWVzc2FnZShwYXJhbSk7XG4gIH1cblxuICAvKipcbiAgICog572R6aG16Lez6L2sXG4gICAqIEBwYXJhbSB1cmxcbiAgICovXG4gIG5hdmlnYXRlVG8odXJsOiBzdHJpbmcpIHtcbiAgICB1bmkubmF2aWdhdGVUbyh7XG4gICAgICB1cmw6ICcvcGFnZXMvcHVibGljLXdlYi12aWV3L3B1YmxpYy13ZWItdmlldz91cmw9JyArIGVuY29kZVVSSUNvbXBvbmVudCh1cmwpXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==