分享

简介: 分享

点击分享唤起App自带分享组件,点击分享外链可以唤起App进入指定页面

唤起分享组件 vipkid://sharetitle,desc,imgUrl,link必须传,为空时会显示null

const shareToFacebook = (params) => {
  const desc = encodeURIComponent(params.desc);
  const title = encodeURIComponent(params.title);
  const imgUrl = encodeURIComponent(params.imgUrl);
  const link = encodeURIComponent(params.link);
  let url = `vipkid://share?title=${title}&desc=${desc}&imgUrl=${imgUrl}&link=${link}`;
  window.location.href = url;
};

1、第一种:分享出去的链接直接跳转到落地页

handleShare() {
  const { protocol, host } = window.location;
  const h5Url = encodeURIComponent(`${protocol}//${host}/account/quiz?sign=${this.shareSign}&channel_id=share_task`); // 落地页
  const params = {
    title: 'I would like to invite you to try VIPQuiz!',
    desc: 'Do you know more about VIPKid than the mysterious Odin?',
    imgUrl: 'https://img.vipkidstatic.com/ter/cms/img/2020/10/14/16/AbwS1602664456094quiz-share.png',
    link: `vkteacher://h5container/browser?url=${h5Url}`
  }
  shareToFacebook(params);
}

2、第二种:分享出去的链接需要唤起App并跳转到落地页

handleShare() {
  const { protocol, host } = window.location;
  const h5Url = encodeURIComponent(`${protocol}//${host}/account/quiz?sign=${this.shareSign}&channel_id=share_task`); // 落地页
  const appUrl = encodeURIComponent(`vkteacher://h5container/browser?url=${h5Url}`);
  const params = {
    title: 'I would like to invite you to try VIPQuiz!',
    desc: 'Do you know more about VIPKid than the mysterious Odin?',
    imgUrl: 'https://img.vipkidstatic.com/ter/cms/img/2020/10/14/16/AbwS1602664456094quiz-share.png',
    link: `${protocol}//${host}/account/link?app=${appUrl}` // account/link 检测是否安装App 可下载 或 唤起App
  }
  shareToFacebook(params);
}

需要注意的几点:

  1. url支持 type 参数,取值为 system 时,唤起 【手机系统】自带分享组件, 默认唤起【App】分享组件。
  2. facebook启用分享功能之前,需要使用开放图谱标签来标记页面的 HTML。meta标签的这些属性包括我们在用户分享文章时具体想要呈现的与文章有关的描述性元数据。这有助于确保当用户通过您的网站分享内容时,您的内容将以您预期的方式显示在 Facebook 上,并包含标题、说明以及缩略图。即 facebook 分享参数是从 link 页面的 mata中拿,不是从vipkid://share?title=${title}&desc=${desc}&imgUrl=${imgUrl}&link=${link}中拿。

即在 link 页面 设置如下 meta,第一种分享方式直接在落地页写,第二种分享方式需要在account/link页面写

head() {
  return {
    meta: [
      { property: 'og:title', content: '#I would like to invite you to try VIPQuiz!' },
      { property: 'og:description', content: 'Do you know more about VIPKid than the mysterious Odin?' },
      { property: 'og:image', content: 'https://img.vipkidstatic.com/ter/cms/img/2020/10/14/16/AbwS1602664456094quiz-share.png' },
    ]
  };
}

!!!注意了,搞完上面的,有可能还有问题 -> 假如nuxt.config.js中配置了同样的meta,会显示nuxt.config.js配置的内容

【解决方案】[Nuxt-head]说了,为了避免子组件中的 meta 标签不能正确覆盖父组件中相同的标签而产生重复的现象,建议利用 hid 键为 meta 标签配一个唯一的标识编号。如下,link 页面 和 nuxt.config.jstitle, image, description均加上hid,值和 property 相同。

目录
相关文章
|
域名解析 弹性计算 Apache
WordPress自助建站教程
本场景将基于一台基础环境为CentOS 7.8的ECS(云服务器)实例,在LAMP环境中安装WordPress,帮助您快速搭建自己的云上博客。
|
存储 JSON 自然语言处理
手把手教你使用ModelScope训练一个文本分类模型
手把手教你使用ModelScope训练一个文本分类模型
|
分布式计算 并行计算 数据库
Schedulerx2.0分布式计算原理&最佳实践
1. 前言 Schedulerx2.0的客户端提供分布式执行、多种任务类型、统一日志等框架,用户只要依赖schedulerx-worker这个jar包,通过schedulerx2.0提供的编程模型,简单几行代码就能实现一套高可靠可运维的分布式执行引擎。
24011 2
|
6月前
|
Ubuntu Docker 容器
ubuntu 通过docker方式安装clouddrive2
ubuntu 通过docker方式安装clouddrive2
893 6
|
7月前
|
弹性计算 监控 开发工具
【阿里云弹性计算】实战教程:如何高效利用阿里云ECS弹性伸缩应对业务高峰
【5月更文挑战第20天】本文介绍了如何使用阿里云ECS弹性伸缩服务应对业务高峰。通过自动调整云资源规模,弹性伸缩在流量增加时扩展实例,流量减少时收缩实例,实现成本与性能的优化。步骤包括开通服务、创建伸缩组、设定规则和监控指标。文中还提供了一个Python脚本示例,并强调了优化策略,如应用无状态设计、考虑冷却时间和结合云监控。通过实践和调整,企业可以有效应对业务波动。
168 5
|
7月前
|
存储 安全 C++
联合:节省内存利器
联合:节省内存利器
|
7月前
RTMP协议详解及Wiresahrk抓包分析(三)
RTMP协议详解及Wiresahrk抓包分析
131 1
|
7月前
|
监控 测试技术 Android开发
移动应用与系统:开发与操作系统的深度解析
【4月更文挑战第11天】在这篇文章中,我们将深入探讨移动应用的开发过程,以及移动操作系统如何影响这些应用的性能和功能。我们将详细分析移动应用开发的关键步骤,包括需求分析、设计、编码、测试和维护。同时,我们也将探讨移动操作系统,如Android和iOS,如何为应用开发提供支持,并影响其性能。
|
7月前
|
Web App开发 开发工具 git
下载HuggingFace大模型上传到Modelscope模型库
下载大模型,都是通过huggingface。以前Llama 2的下载,必须通过Meta才能下载,直接使用Meta的代码去Meta官方下载,国内是很容易中断,导致无法下载。现在你通过了Meta申请通过后,可以直接在huggingface进行下载。
|
搜索推荐
如何搜索到阿里云盘分享资源
云盘资源,浩如烟海,但缺乏搜索工具,让无数网友苦不堪言。幸运的是,现在有了强大的网盘搜索引擎,一切问题迎刃而解。轻松找到您需要的文件,快速下载,节省时间。享受便捷的云盘体验,释放您的创造力。无论是工作文档还是娱乐资源,网盘搜索引擎助您轻松搞定。解放您的搜索困扰,开启全新的云盘世界!
4669 1