分享页面到第三方平台最简(facebook,twitter,whatsapp...)

914 阅读2分钟

第三方分享最简(facebook,twitter,whatsapp...)

推广网站页面,并进行跟踪,怎么把链接分享到第三方平台呢

看看看看(热乎着呢):直奔主题,主打一个快准狠

/**
 * We use shorter names to reduce the final bundle size
 *
 * Properties:
 * @u = url
 * @t = title
 * @d = description
 * @q = quote
 * @h = hashtags
 * @m = media
 * @tu = twitterUser
 */

export default {
    baidu: 'http://cang.baidu.com/do/add?iu=@u&it=@t',
    buffer: 'https://bufferapp.com/add?text=@t&url=@u',
    email: 'mailto:?subject=@t&body=@u%0D%0A@d',
    evernote: 'https://www.evernote.com/clip.action?url=@u&title=@t',
    facebook: 'https://www.facebook.com/sharer/sharer.php?u=@u&title=@t&description=@d&quote=@q&hashtag=@h',
    flipboard: 'https://share.flipboard.com/bookmarklet/popout?v=2&url=@u&title=@t',
    hackernews: 'https://news.ycombinator.com/submitlink?u=@u&t=@t',
    instapaper: 'http://www.instapaper.com/edit?url=@u&title=@t&description=@d',
    line: 'http://line.me/R/msg/text/?@t%0D%0A@u%0D%0A@d',
    linkedin: 'https://www.linkedin.com/sharing/share-offsite/?url=@u',
    odnoklassniki: 'https://connect.ok.ru/dk?st.cmd=WidgetSharePreview&st.shareUrl=@u&st.comments=@t',
    pinterest: 'https://pinterest.com/pin/create/button/?url=@u&media=@m&description=@t',
    pocket: 'https://getpocket.com/save?url=@u&title=@t',
    quora: 'https://www.quora.com/share?url=@u&title=@t',
    reddit: 'https://www.reddit.com/submit?url=@u&title=@t',
    skype: 'https://web.skype.com/share?url=@t%0D%0A@u%0D%0A@d',
    sms: 'sms:?body=@t%0D%0A@u%0D%0A@d',
    stumbleupon: 'https://www.stumbleupon.com/submit?url=@u&title=@t',
    telegram: 'https://t.me/share/url?url=@u&text=@t%0D%0A@d',
    tumblr: 'https://www.tumblr.com/share/link?url=@u&name=@t&description=@d',
    twitter: 'https://twitter.com/intent/tweet?text=@t&url=@u&hashtags=@h@tu',
    viber: 'viber://forward?text=@t%0D%0A@u%0D%0A@d',
    vk: 'https://vk.com/share.php?url=@u&title=@t&description=@d&image=@m&noparse=true',
    weibo: 'http://service.weibo.com/share/share.php?url=@u&title=@t&pic=@m',
    whatsapp: 'https://api.whatsapp.com/send?text=@t%0D%0A@u%0D%0A@d',
    wordpress: 'https://wordpress.com/press-this.php?u=@u&t=@t&s=@d&i=@m',
    xing: 'https://www.xing.com/social/share/spi?op=share&url=@u&title=@t',
    yammer: 'https://www.yammer.com/messages/new?login=true&status=@t%0D%0A@u%0D%0A@d'
  }

ps:html

<a class="button" v-for="share in format.shareList" :key="share.value" :class="share.icon" @click="toShare(item, share)">
    <img :src="getAssetsFile(share.img)" alt="" />
</a> 
//这里的item也是上一个结构循环的数据
//{
//    "materialUrl": "https://www.hsb.co.id/",
//    "updateDate": "2023-08-29 14:53:55",
//    "materialType": 3,
//    "updateUser": "admin",
//    "title": "平台介绍",
//    "topTime": null,
//    "content": "444444444444444444444",
//    "enabled": true,
//    "shareCount": 4,
//    "isTop": false,
//    "createUser": "admin",
//    "id": 33,
//    "viewCount": 2,
//    "createDate": "2023-08-29 14:53:55"
//  },

ps:js(vue3)

const shareList= [
    {
      value: "facebook",
      icon: "i-facebook",
      url: "https://www.facebook.com/sharer/sharer.php",
      img: "promote/facebook.webp",
    },
    {
      value: "whatsapp",
      icon: "i-whatsapp",
      url: "https://api.whatsapp.com/send",
      img: "promote/instagram.webp",
    },
    {
      value: "twitter",
      icon: "i-twitter",
      url: "https://twitter.com/intent/tweet",
      img: "promote/twitter.webp",
    },
  ],
 // 分享
const toShare = (item, share) => {
  const popupWidth = 600;
  const popupHeight = 480;
  const left = window.innerWidth / 2 - popupWidth / 2 + window.screenX;
  const top = window.innerHeight / 2 - popupHeight / 2 + window.screenY;
  const popupFeatures = `scrollbars=no, width=${popupWidth}, height=${popupHeight}, top=${top}, left=${left}`;// 这里只是处理打开的窗口,可不看
  let params = "",
    shareUrl = encodeURIComponent(item.materialUrl),
    title = encodeURIComponent(item.title);//这里你要分享到第三方的的页面和带过去的内容(这里最好处理一下用encodeURIComponent)
  switch (share.value) {
    case "facebook":
      params = `?u=${shareUrl}&title=${title}`;
      break;
    case "whatsapp":
      params = `?text=${title} ${shareUrl}`;
      break;
    case "twitter":
      params = `?url=${shareUrl}&text=${title}`;
      break;
  }//分享到第三方的时候路径拼接
  const url = share.url
  if (device == "mobile") {
    window.open(url + params);
  } else {
    window.open(url + params, "sharePopup", popupFeatures);
  }
};

需求+分享效果:

image-20230906141947023.png

问题:

1:facebook不能带过去title(暂时不知道为什么)

2:twitter页面的展示图同一个路径,参数有改动,可能捕捉不到,不能展示

image-20230906142823860.png

3:其他第三方都比较容易分享有效果,但是一定要注意分享的页面head里面的东西最好全面一点(例如)

注意:所有需要内网才能访问的,twitter都是访问不到的,所以访问不了,不必惊讶

<title>Berhasil meraih profit!</title>
<meta name="description" content="HSB Investasi adalah broker forex terpercaya yang menawarkan trading forex, emas, perak, komoditas, indeks, dan saham AS. Terdaftar/berizin Bappebti." />
<meta name="author" content="HSB Investasi" />
//facebook
<meta property="og:site_name" content="HSB Investasi" />
<meta property="og:type" content="website" />
<meta property="og:locale" content="id_ID" />
<meta property="og:url" content="https://www.hsb.co.id/share/trade/index.html" />
<meta property="og:title" content="Berhasil meraih profit!" />
<meta property="og:description" content="HSB Investasi adalah broker forex terpercaya yang menawarkan trading forex, emas, perak, komoditas, indeks, dan saham AS. Terdaftar/berizin Bappebti.">
<meta property="og:image" content="https://www.hsb.co.id/share/trade/images/bprofit.webp" />
<meta property="og:image:width" content="750" />
<meta property="og:image:height" content="400" />
<meta property="og:image:type" content="image/webp" /> 
//twitter 
<meta property="twitter:type" content="image/webp" />
<meta property="twitter:url" content="https://www.hsb.co.id/share/trade/index.html" />
<meta property="twitter:image" content="https://www.hsb.co.id/share/trade/images/bprofit.webp" />
<meta name="twitter:image:src" content="https://www.hsb.co.id/share/trade/images/bprofit.webp">
<meta name="twitter:site" content="@hsb_investasi" />
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:creator" content="@greghvns"> 

4:能不能打开自带的app(这个与浏览器有关,google浏览器一般是可以的)