UNPKG

icx-meum-vue-common-module

Version:

icx-meum-vue-common-module

79 lines (69 loc) 2.43 kB
/** * Created by wangbagang on 2017/4/11. */ import { STRING_APP_METHOD_REQUEST_WEB_CODE, STRING_DEVICE_TYPE_ANDROID, STRING_APP_LOGIN_SUCCESS, STRING_APP_APP_MALL_BUY_SUCCESS } from '../icx/const' import { getDeviceType, checkIsNullOrEmpty, isMeumApp } from '../icx/utils' import request from './http' const JsBridge = function () { function setupWebViewJavascriptBridge (callback) { if (!isMeumApp()) { return } if (window.WebViewJavascriptBridge) { return callback(window.WebViewJavascriptBridge) } if (getDeviceType() === STRING_DEVICE_TYPE_ANDROID) { document.addEventListener('WebViewJavascriptBridgeReady', function () { callback(window.WebViewJavascriptBridge) }, false) } if (window.WVJBCallbacks) { return window.WVJBCallbacks.push(callback) } window.WVJBCallbacks = [callback] let WVJBIframe = document.createElement('iframe') WVJBIframe.style.display = 'none' WVJBIframe.src = 'https://__bridge_loaded__' document.documentElement.appendChild(WVJBIframe) setTimeout(function () { document.documentElement.removeChild(WVJBIframe) }, 0) } setupWebViewJavascriptBridge(function (bridge) { if (getDeviceType() === STRING_DEVICE_TYPE_ANDROID) { bridge.init(function (message, responseCallback) { let data = {} responseCallback(data) }) } bridge.registerHandler('getAppData', function (data, responseCallback) { responseCallback() }) }) // 观察app的登录状态 window.receivedNativeState = function (state) { if (state.type === STRING_APP_LOGIN_SUCCESS || state.type === STRING_APP_APP_MALL_BUY_SUCCESS) { window.location.reload() } } window.getAuthToken = function (cb) { if (window.WebViewJavascriptBridge) { window.WebViewJavascriptBridge.callHandler(STRING_APP_METHOD_REQUEST_WEB_CODE, {}, function (response) { if (!checkIsNullOrEmpty(response)) { request('https://api.icarbonx.com/auth/web-code/login', { code: response }, 'POST').then(function () { if (cb) { cb() } else { window.location.reload() } }).catch(function (e) { alert(e + ' 服务器错误,请重新尝试') }) } }) } else { alert('初始化失败,请退出重新尝试') } } } export default JsBridge