ng-yunzai-mobile
Version:
1. 适配yunzai_uni_app_x
191 lines • 11.9 kB
JavaScript
/**
* @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==