...
|
...
|
@@ -8,19 +8,32 @@ |
|
|
*
|
|
|
* 希望能与 微信 JS-SDK 一样方便
|
|
|
*/
|
|
|
var $ = require('yoho-jquery');
|
|
|
var tip = require('./plugin/tip');
|
|
|
|
|
|
/* 空方法 */
|
|
|
var emptyFn = function() {};
|
|
|
var emptyFn = function () { };
|
|
|
|
|
|
/* 提示信息 */
|
|
|
var tipInfo = '暂不支持,请在YOHO!BUY应用中打开';
|
|
|
|
|
|
var yoho = {
|
|
|
var qs = window.queryString;
|
|
|
|
|
|
var yoho, $appLink, $appButton;
|
|
|
|
|
|
$appLink = $('#yoho-app-link');
|
|
|
|
|
|
if (!$appLink.length) {
|
|
|
$('body').append('<a id="yoho-app-link" href="javascript:;" style="display:none !important;"><span></span></a>');
|
|
|
$appLink = $('#yoho-app-link');
|
|
|
}
|
|
|
$appButton = $appLink.find('span');
|
|
|
|
|
|
yoho = {
|
|
|
/**
|
|
|
* 判断是否是 APP
|
|
|
*/
|
|
|
isApp: /YohoBuy/i.test(navigator.userAgent || ''),
|
|
|
isApp: /YohoBuy/i.test(navigator.userAgent || '') || qs.app_version,
|
|
|
isiOS: /\(i[^;]+;( U;)? CPU.+Mac OS X/i.test(navigator.userAgent || ''),
|
|
|
isAndroid: /Android/i.test(navigator.userAgent || ''),
|
|
|
|
...
|
...
|
@@ -29,7 +42,7 @@ var yoho = { |
|
|
*/
|
|
|
data: window.yohoInterfaceData,
|
|
|
|
|
|
ready: function(callback) {
|
|
|
ready: function (callback) {
|
|
|
if (this.isApp) {
|
|
|
document.addEventListener('deviceready', callback);
|
|
|
} else {
|
...
|
...
|
@@ -44,7 +57,7 @@ var yoho = { |
|
|
* @param success 调用成功的回调方法
|
|
|
* @param fail 调用失败的回调方法
|
|
|
*/
|
|
|
invokeMethod: function(method, args, success, fail) {
|
|
|
invokeMethod: function (method, args, success, fail) {
|
|
|
var appInterface = window.yohoInterface;
|
|
|
|
|
|
if (this.isApp && appInterface) {
|
...
|
...
|
@@ -62,15 +75,96 @@ var yoho = { |
|
|
* @param name 方法名
|
|
|
* @param callback 回调
|
|
|
*/
|
|
|
addNativeMethod: function(name, callback) {
|
|
|
addNativeMethod: function (name, callback) {
|
|
|
var appInterface = window.yohoInterface;
|
|
|
|
|
|
// 延迟 500ms 注入
|
|
|
setTimeout(function() {
|
|
|
setTimeout(function () {
|
|
|
if (appInterface) {
|
|
|
appInterface[name] = callback;
|
|
|
}
|
|
|
}, 500);
|
|
|
},
|
|
|
|
|
|
parseUrl: function (url) {
|
|
|
var query = {},
|
|
|
hashs,
|
|
|
hash,
|
|
|
i;
|
|
|
|
|
|
url = (url || '').split('?');
|
|
|
hashs = url[1].split('&');
|
|
|
|
|
|
if (hashs && hashs.length) {
|
|
|
for (i = 0; i < hashs.length; i++) {
|
|
|
hash = hashs[i].split('=');
|
|
|
console.log(hashs[i])
|
|
|
query[hash[0]] = hash[1];
|
|
|
}
|
|
|
}
|
|
|
|
|
|
return {
|
|
|
path: url[0],
|
|
|
query: query
|
|
|
};
|
|
|
},
|
|
|
|
|
|
getUid: function () {
|
|
|
if (yoho.isApp) {
|
|
|
return qs.uid;
|
|
|
}
|
|
|
|
|
|
return window.gitUid();
|
|
|
},
|
|
|
|
|
|
goLogin: function (refer, data) {
|
|
|
var url;
|
|
|
|
|
|
url = 'http://m.yohobuy.com/signin.html?refer=' + encodeURIComponent(refer);
|
|
|
refer = yoho.parseUrl(refer || location.href);
|
|
|
|
|
|
if (yoho.isApp) {
|
|
|
url = url + '&openby:yohobuy=' + (data || JSON.stringify({
|
|
|
action: 'go.weblogin',
|
|
|
params: {
|
|
|
priority: 'N',
|
|
|
jumpurl: {
|
|
|
url: refer.path,
|
|
|
param: refer.query
|
|
|
}
|
|
|
}
|
|
|
}))
|
|
|
}
|
|
|
|
|
|
$appLink.attr('href', url);
|
|
|
$appButton.click();
|
|
|
return false;
|
|
|
},
|
|
|
|
|
|
goH5: function (link, data) {
|
|
|
var url = link;
|
|
|
|
|
|
if (!link) {
|
|
|
return;
|
|
|
}
|
|
|
link = yoho.parseUrl(link || location.href);
|
|
|
|
|
|
if (yoho.isApp) {
|
|
|
url = url + '&openby:yohobuy=' + (data || JSON.stringify({
|
|
|
action: 'go.h5',
|
|
|
params: {
|
|
|
islogin: 'N',
|
|
|
type: 0,
|
|
|
updateflag: Date.now() + '',
|
|
|
url: link.path,
|
|
|
param: link.query
|
|
|
}
|
|
|
}))
|
|
|
}
|
|
|
|
|
|
$appLink.attr('href', url);
|
|
|
$appButton.click();
|
|
|
return false;
|
|
|
}
|
|
|
};
|
|
|
|
...
|
...
|
|