UNPKG

weex-nuke

Version:

基于 Rax 、Weex 的高性能组件体系 ~~

110 lines (101 loc) 3.16 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _rax = require('rax'); var _nukeUtil = require('../Util/index.js'); var _nukeEnv = require('../Env/index.js'); var Navigator = { setTitle: function setTitle(title) { if (_nukeEnv.isWeex) { var navigator = require('@weex-module/navigator'); try { navigator.setTitle({ title: title }, function () {}); } catch (e) { document.title = title; } } }, convertURL: function convertURL(url) { if (url.indexOf('qap://') > -1) { var options = { refer: window.location.href }; if (typeof window.__QAP__ !== 'undefined' && __QAP__.package && __QAP__.package.config && __QAP__.package.config.WebRootPath) { options.webRootPath = __QAP__.package.config.WebRootPath; } url = (0, _nukeUtil.urlHandler)(url, options); } return url; }, isEmpty: function isEmpty(obj) { for (var key in obj) { if (hasOwnProperty.call(obj, key)) { return false; } } return true; }, serialize: function serialize(url, obj) { if (this.isEmpty(obj)) { return url; } var str = ''; for (var p in obj) { str = '&' + p + '=' + encodeURIComponent(obj[p]); } if (_nukeUtil.urlHelper.urlParse(url).search.length > 0) { url = str ? '' + url + str : url; } else { url = str ? url + '?' + str.substring(1) : url; } return url; }, push: function push(url, title) { var animated = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true; var param = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {}; var callback = arguments[4]; if (_nukeEnv.isWeex) { var navigator = require('@weex-module/navigator'); try { navigator.push(_extends({ url: url, title: title }, param), function (e) { callback && callback(e); }); } catch (e) { callback && callback(e); } } else { url = this.convertURL(url); if (url) { if (param.target && param.target === '_blank') { delete param.target; window.open(this.serialize(url, param), '_blank'); } else { window.location.href = this.serialize(url, param); } } } }, pop: function pop() { var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : { animation: 'true' }; var callback = arguments[1]; if (_nukeEnv.isWeex) { var navigator = require('@weex-module/navigator'); try { navigator.pop(options, function (e) { callback && callback(e); }); } catch (e) { callback && callback(e); } } else { window.history.back(); } } }; exports.default = Navigator; module.exports = exports['default'];