siteshen
2014-08-06 01:12:57 +08:00
上面的解决方案对iOS和比较Android手机够用了,我再补充一下网页在weibo客户端(系统Android 4.1.2版,怀疑其他老版本Weibo客户端也有此问题)遇到的坑:
1. window.location = "intent://story/33195#Intent;package=xxx;scheme=zbd;end;";
该客户端中,直接跳转过去了,出现的是一个类似404的页面;
2. 该客户端中的UserAgent和默认浏览器的完全一样,没法判断是在微博客户端里的。
解决方案,最终检查header时发现refer字段里有m.weibo.cn字样,就用这个方案判断了。
source = $('body').data('source');
IS_WECHAT = /micromessenger/i.test(navigator.userAgent);
IS_WEIBO_SOURCE = source && /weibo/i.test(source);
IS_WEIBO_UA = /weibo/i.test(navigator.userAgent);
IS_WEIBO = !IS_WECHAT && (IS_WEIBO_UA || IS_WEIBO_SOURCE);
// 微信和微博多数“[在浏览器中打开]”显示在“右上角”,然后还设计了个箭头、囧
if (IS_WEIBO_SOURCE && !IS_WEIBO_UA) {
$('.font-attention.browser-btn').text('右下角');
$('.tips-arrow').hide();
}
if (IS_WEIBO || IS_WECHAT) {
$('.browser-tips').show();
return $('.browser-tips .browser-tips-mask').on('click', function(e) {
return $('.browser-tips').hide();
});
}