weex-nuke
Version:
基于 Rax 、Weex 的高性能组件体系 ~~
110 lines (101 loc) • 3.16 kB
JavaScript
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'];
;