Authored by 陈峰

Merge branch 'hotfix/shareProto' into 'master'

share proto



See merge request !94
... ... @@ -29,7 +29,7 @@ if (window.__INITIAL_STATE__) {
}
window._router = get(store, 'state.yoho.context.route');
window._router = get(store, 'state.yoho.context.route') || 'offline-route';
Vue.prop('yoho', yoho);
Vue.prop('sdk', sdk);
... ...
... ... @@ -97,7 +97,14 @@
s.parentNode.insertBefore(hm, s);
})();
}());
}, 1000);
}, 500);
window._yohoAppName = 'yoho-community-web-offline';
window._router = 'offline-route';
!function(t){function n(r){if(e[r])return e[r].exports;var i=e[r]={exports:{},id:r,loaded:!1};return t[r].call(i.exports,i,i.exports,n),i.loaded=!0,i.exports}var e={};n.m=t,n.c=e,n.p="",n(0)}([function(t,n,e){var r=e(3),i=e(2),o="_perfLog",a=e(17),c=e(18);({init:function(t){this.debug=t,this.dataList=[],this.isRunning=!1,a.init(this.debug),c.init(this.debug);var n=this;window.addEventListener&&window.addEventListener("load",function(){setTimeout(function(){n.collect()},500)})},collect:function(){try{var t=c.collect(),n=a.collect();this.chunkWrite(t);for(var e=0;e<n.length;e++)this.chunkWrite(n[e]);this.report()}catch(t){this.debug&&console.log(t)}},getMeta:function(){return{pt:encodeURIComponent(window.location.href),u:i.getUid(),ud:i.getUdid(),rid:i.getReqId(),r:i.getRoute()}},jsonConcat:function(t,n){for(var e in n)t[e]=n[e];return t},write:function(t){this.jsonConcat(t,this.getMeta());var n=JSON.parse(r(o)||"[]");n.push(t),r(o,JSON.stringify(n))},report:function(){var t=this,n=JSON.parse(r(o)||"[]"),e=i.stringify(n);i.report(e,function(){t.clear()})},clear:function(){r(o,"[]")},chunkWrite:function(t){function n(){if(0!==e.dataList.length){var t=e.dataList.shift();e.write(t),setTimeout(n,10)}}var e=this;this.dataList.push(t),this.isRunning||(this.isRunning=!0,n())}}).init()},function(t,n){t.exports=function(t,n,e){if(void 0===n){var r=null;if(document.cookie)for(var i=document.cookie.split(";"),o=0;o<i.length;o++){var a=(i[o]||"").trim();if(a.substring(0,t.length+1)==t+"="){r=decodeURIComponent(a.substring(t.length+1));break}}return r}e=e||{},null===n&&(n="",e.expires=-1);var c="";if(e.expires&&("number"==typeof e.expires||e.expires.toUTCString)){var u;"number"==typeof e.expires?(u=new Date,u.setTime(u.getTime()+24*e.expires*60*60*1e3)):u=e.expires,c="; expires="+u.toUTCString()}var s=e.path?"; path="+e.path:"",f=e.domain?"; domain="+e.domain:"",d=e.secure?"; secure":"";document.cookie=[t,"=",encodeURIComponent(n),c,s,f,d].join("")}},function(t,n,e){var r=e(1),i=window._yohoAppName||"unknown",o={config:{reportUrl:"https://badjs.yoho.cn/apm/yas2.gif"},stringify:function(t){for(var n=[],e=0;e<t.length;e++){var r=t[e],i=[];for(var o in r)r.hasOwnProperty(o)&&i.push(o+"::"+r[o]);n.push(i.join("$$"))}return n.join("**")},report:function(t,n){if(t){(new Image).src=this.config.reportUrl+"?s="+i+"&l="+t+"&t="+(new Date).getTime(),n&&n()}},getUdid:function(){return r("udid")||""||0},getUid:function(){return(r("_UID")||"").split("::")[1]||0},getReqId:function(){return r("docreqid")||0},getRoute:function(){return window._router||""}};t.exports=o},function(t,n){t.exports=function(t,n){if(void 0===n){var n=null;return window.localStorage&&(n=window.localStorage.getItem(t)),n}window.localStorage&&window.localStorage.setItem(t,n)}},,,,,,,,,,,,,,function(t,n){var e={init:function(t){if(this.enable=!0,this.debug=t,!("performance"in window&&"getEntriesByType"in window.performance&&window.performance.getEntriesByType("resource")instanceof Array))return void(this.enable=!1);this.whiteList=[/\/\/img\d*.static.yhbimg.com/,/\/\/cdn.yoho.cn/]},print:function(){var t=document.getElementById("debug"),n=this.formatDebugInfo();if(t)t.innerHTML+=n;else{var e=document.createElement("div");e.id="debug",e.innerHTML=n,document.body.appendChild(e)}},formatDebugInfo:function(){for(var t="<p>resource object: <br/>",n=this.getData(),e=0;e<n.length;e++)t+=JSON.stringify(n[e],null,2)+"<br/>";return t+="</p>"},filter:function(t){for(var n=0;n<this.whiteList.length;n++)if(this.whiteList[n].test(t))return!0;return!1},getData:function(){var t=window.performance.getEntriesByType("resource"),n=[],e={};for(var r in t){var i=t[r];if(this.filter(i.name)){var o={tp:"resource",mtp:i.initiatorType||"unknown",id:i.name||"unknown",dt:Math.floor(i.domainLookupEnd-i.domainLookupStart||0),tt:Math.floor(i.connectEnd-i.connectStart||0),rt:Math.floor(i.responseEnd-i.responseStart||0),rrt:Math.floor(i.responseEnd-i.fetchStart||0)};i.initiatorType in e?e[i.initiatorType].push(o):e[i.initiatorType]=[o]}}for(var a in e){for(var c=e[a],u=c.length,s={tp:"rs",mtp:a,dt:0,tt:0,rt:0,rrt:0},f=0;f<c.length;f++){var d=c[f];s.dt+=d.dt,s.tt+=d.tt,s.rt+=d.rt,s.rrt+=d.rrt}s.dt=Math.floor(s.dt/u),s.tt=Math.floor(s.tt/u),s.rt=Math.floor(s.rt/u),s.rrt=Math.floor(s.rrt/u),n.push(s)}return n},collect:function(){return this.enable?(this.debug&&this.print(),this.getData()):[]}};t.exports=e},function(t,n){var e=function(){function t(){return{tp:"tm",mtp:"html",dt:Math.floor(n),tt:Math.floor(e),rt:Math.floor(r),domt:Math.floor(o),et:Math.floor(i),ot:Math.floor(a),rtt:Math.floor(c),sw:screen.width||1,sh:screen.height||1,pf:navigator.platform||"unknown"}}var n=performance.timing.domainLookupEnd-(performance.timing.domainLookupStart||0),e=performance.timing.connectEnd-(performance.timing.connectStart||0),r=performance.timing.responseEnd-(performance.timing.responseStart||0),i=performance.timing.responseStart-(performance.timing.navigationStart||0),o=performance.timing.domContentLoadedEventEnd-(performance.timing.domLoading||0),a=performance.timing.domContentLoadedEventEnd-(performance.timing.navigationStart||0),c=(performance.timing.loadEventEnd||performance.timing.domComplete)-(performance.timing.navigationStart||0);return{collect:function(){return t()},print:function(){var t=document.getElementById("debug"),n=this.formatDebugInfo();if(t)t.innerHTML+=n;else{var e=document.createElement("div");e.id="debug",e.innerHTML=n,document.body.appendChild(e)}},formatDebugInfo:function(){var t="<p>";return t+="timing object : "+JSON.stringify(this.collect(),null,2)+"<br/>",t+="url: "+decodeURIComponent(window.location.href)+"<br/>",t+="</p>"}}},r={init:function(t){if(this.enable=!0,this.debug=t,!("performance"in window))return void(this.enable=!1)},collect:function(){if(this.enable){var t=e(),n=t.collect();return this.debug&&t.print(),n}}};t.exports=r}]);
</script>
</body>
</html>
... ...
... ... @@ -31,6 +31,7 @@
<script>
import {get, forEach, trim} from 'lodash';
import {createNamespacedHelpers} from 'vuex';
import {getDetailShareData} from 'utils/share-handler';
import YAS from 'utils/yas-constants';
const {mapMutations} = createNamespacedHelpers('article');
... ... @@ -173,13 +174,7 @@ export default {
this.reportLabel(topicId);
},
onShare() {
this.$yoho.share({
title: `@${this.data.authorName} 在有货社区上发了一篇笔记,快点开看看!`,
imgUrl: this.data.shareImage,
link: `${location.origin}/grass/article/share/${this.data.articleId}`,
desc: this.data.intro,
hideType: ['7', '8', '9']
});
this.$yoho.share(getDetailShareData(this.data));
},
onExpanding() {
if (this.data.articleType === 2) {
... ...
... ... @@ -19,6 +19,8 @@
<script>
import {get} from 'lodash';
import {getTopicShareData} from 'utils/share-handler';
export default {
data() {
return {
... ... @@ -79,13 +81,7 @@ export default {
this.$emit('on-follow', follow);
},
onShare() {
this.$yoho.share({
title: this.data.topicName,
imgUrl: this.data.topicImageUrl,
link: `${location.origin}/grass/topic/share/${this.data.topicId}`,
desc: '我在有货的社区发现一个热门话题。' + this.data.topicDesc,
hideType: ['7', '8', '9']
});
this.$yoho.share(getTopicShareData(this.data));
}
}
};
... ...
... ... @@ -2,6 +2,17 @@ import {get, first} from 'lodash';
const DEFAULT_SHARE_IMAGE = 'http://static.yohobuy.com/m/v1/img/touch/apple-touch-icon-144x144-precomposed-new.png';
function handleProtocol(url) {
if (url.indexOf('//') < 0 || url.indexOf('http') >= 0) {
return url;
}
url = url.split('//');
url[0] = 'https:';
return url.join('//');
}
const getDetailShareData = (article) => {
let shareImage = '';
let desc = '';
... ... @@ -22,13 +33,24 @@ const getDetailShareData = (article) => {
return {
title: `@${article.authorName} 在有货社区上发了一篇笔记,快点开看看!`,
imgUrl: get(shareImage.split('?'), '[0]') || DEFAULT_SHARE_IMAGE,
link: `${window ? window.location.origin : ''}/grass/article/share/${article.articleId}`,
imgUrl: handleProtocol(get(shareImage.split('?'), '[0]') || DEFAULT_SHARE_IMAGE),
link: handleProtocol(`${window ? window.location.origin : ''}/grass/article/share/${article.articleId}`),
desc,
hideType: ['7', '8', '9']
};
}
const getTopicShareData = (topic) => {
return {
title: topic.topicName,
imgUrl: handleProtocol(topic.topicImageUrl),
link: handleProtocol(`${location.origin}/grass/topic/share/${topic.topicId}`),
desc: '我在有货的社区发现一个热门话题。' + topic.topicDesc,
hideType: ['7', '8', '9']
};
}
export {
getDetailShareData
getDetailShareData,
getTopicShareData
};
... ...
{
"name": "yoho-community-web",
"version": "6.9.5-7",
"version": "6.9.5-14",
"private": true,
"description": "A New Yohobuy Project With Express",
"repository": {
... ...