一.前因

首先,我其实是个标题党,标题所说的功能受制于微信限制,是没有方案可以在微信里打开的H5页面中直接保存视频到本地或者以视频消息的方式直接分享给好友。图片就没这个烦恼,可以直接长按图片,微信会弹出原生菜单保存或分享图片。如下图所示:

那视频要怎么分享呢?开始我们只能使用折中方案,将视频当作链接消息分享,接入了微信jssdk将视频地址作为链接地址,在页面中用箭头提示用户点击右上角去将地址分享出去,其他用户点击链接会打开浏览器直接播放视频。

二.后果

显而易见,这种方式十分挫,分享人需要被特意引导去分享链接,增加了分享门槛,分享人无法保存本地,没办法随时随地分享,除非他把链接收藏。而且分享出来的是链接消息,不能直观告诉被分享人是个视频,减少被分享人点击的意愿,同样的情况会减少二次分享意愿。所以我们最后还是想找到一种方式能直接把视频分享出去。

三.解决方案

在微信生态里面做事,必须要遵守微信规则(以及要填很多坑,后续再谈)。既然H5没有相关能力,那就只好往小程序找找了。不出所料,小程序的确可以直接保存视频或者分享视频。

具体接口:

转发视频到聊天

保存视频到系统相册

所以摆在眼下的就是如何运用小程序的能力问题了。经过调研总结如下三种方案:

1.在小程序内嵌现有H5

使用小程序的开放能力,内嵌webview加载H5页面,得到视频地址后,从webview页面跳转到小程序原生页面,展示视频并调用相关能力保存或者分享视频。

存在问题:

内嵌后,由于webview限制需要做一些适配等,比如现有的页面链接分享操作需要做调整,无法调用原jssdk接口分享链接消息,需要转为分享小程序卡片。再比如,原先是扫码打开H5,要调整为扫码打开小程序。

优点:

体验相对连贯(对比第2点),分享时只需要做一个小程序内页面跳转(这跳转是由于小程序限制在内嵌webview的页面没法直接调用原生接口,所以需要跳转到一个原生页面处理,也可能是我没找到方法,如果有请告诉我),工作量适中。

2.依然使用H5,只在分享视频时跳转小程序

微信提供了从H5页面直接打开小程序的能力,所以可以在拿到视频链接后,直接带参数跳到小程序,调用小程序能力去保存分享视频。

存在问题:

体验比较割裂 ,会弹框提示二次确认是否跳转,然后需要单独做一个单纯展示视频以及分享保存的小程序,这种不知道能不能通过审核。

优点:

目前绝大部分流程无需调整,只调整视频分享的逻辑,工作量小。

3.用小程序原生代码或者跨平台框架实现现有功能

存在问题:

移植工作量大。

优点:

体验最优,无需跳转分享,体验最流畅。

四.方案选择

方案选择需要评估自身项目实际情况来决定,比如工期不赶,页面架构简单,移植工作量不大,当然是选择方案三以达到用户体验最优解。

但是很多时候人在江湖,身不由己,做项目也一样,我们最后选择的是方案一,因为时间不是很充裕,而且最重要的是我们使用了一个第三方的库Three.js,用于展示3D模型的,在原生小程序中支持程度不明确(后续做了专门验证的确没法用,效果差),官方移植版本许久未更新,问题多多,另外还有一些民间移植版本效果不明。

所以在调研结束后,我们就选择了方案一,工作量适中,开发风险适中,用户体验适中。

五.结束

在写这篇文章的时候,已经在按方案一去调整了,本来以为正常流程都是和纯H5表现一致,结果发现了很多意想不到的坑,明明在微信浏览器打开H5都正常的,同样代码到了小程序webview打开就异常了,所以后续会对这些坑做一些记录总结。我们前端用的Vue开发,所以后续对微信小程序内嵌webview加载H5的坑总结也是基于Vue。

微信H5保存或下载视频到本地,将视频直接分享视频给好友相关推荐

  1. html+js将文本和图片保存(下载)到本地技术

    html+js将文本和图片保存(下载)到本地技术 我在博文https://blog.csdn.net/cnds123/article/details/120469779介绍了用html+js读取本地文 ...

  2. H5 -- 微信h5页面中下载第三方app的方法

    需求:在微信h5页面中下载第三方app -- 安卓, 直接下载apk文件包:iphone,跳转AppStore 分析:微信不支持,在微信中屏蔽了apk文件的下载以及AppStore的跳转(且除非和TX ...

  3. 微信跳转手机默认浏览器提示 微信h5页面中下载第三方app的方法

    由于微信的限制,应用文件在内置浏览器中下载全部被屏蔽掉,造成很多人用微信扫描二维码下载时点击下载按钮没反应,我想到的是做一个提示用户在浏览器中打开下载. 可以参考:微信打开网址添加在浏览器中打开提示和 ...

  4. 需求:在微信h5页面中下载第三方app —— 安卓, 直接下载apk文件包;iphone,跳转AppStore

    分析:微信不支持,在微信中屏蔽了apk文件的下载以及AppStore的跳转(且除非和TX有合作的应用,否则也不支持通过scheme跳转第三方app) 点击查看案例地址 变通方法: 一.借助TX的应用市 ...

  5. 拼多多直播下载;怎么下载拼多多直播间的视频到本地?拼多多直播视频下载教程 拼多多直播下载工具 多平台直播下载

    现在拼多多的直播视频行业很火爆,想要加入不知道怎么做的: 今天我就和大家说说直播视频的素材如何选取如何下载? 首先我们在拼多多上搜索一下想要的视频:然后用软件(资源通用下载器)下载就可以了. 接下来给 ...

  6. 安卓端微信H5下载文件处理:让微信自动弹起跳转外部浏览器窗口

    配套视频:https://www.bilibili.com/video/BV1oA411B7gv/ 背景 今天鼓捣了一下手机投屏到笔记本,就想录个视频展示一下学习成果,正好就想起了很早之前实现的这个功 ...

  7. 微信如何保存文件?企业微信如何下载文件?

    我们经常用微信传输文件,用企业微信办公时也需要经常保存和下载文件,如何操作和设置呢? 个人微信如何保存文件? 大家对个人微信传输文件应该非常熟悉了,用"文件传输助手"可以很方便的将 ...

  8. unity android视频录制sdk,Unity中保存EveryPlay录制视频到本地的解决方案

    五月 14.2018. 0 Comment 在Unity中使用EveryPlay录制视频时,有如下问题: 1. EveryPlay API(截止到现在,之后Final Version可能会增加)不支持 ...

  9. 微信H5视频抓娃娃,没你想的那么难,看完你也会

    短短两周时间,在线抓娃娃从一个默默赚钱的行业变成了风口行业,从硬件到软件架构.从盈利到投资.从运营到推广,全方位解读都有了.唯独H5抓娃娃(特指移动web.微信抓娃娃),仍然很神秘. H5抓娃娃真的有 ...

  10. vue在微信里面的兼容问题_微信H5页面兼容性问题分析及解决方法

    随着H5页面越来越流行,越来越多的开发者都开始用最近H5做微信公众号,在这个过程中自然也会遇到不少的问题.小编在这里整理了五种常见的微信H5页面兼容性问题,来和大家分析一下问题的详情.出现原因以及相对 ...

最新文章

  1. 动态划分VLAN的方法中不包括(23)。【答案】C
  2. 大话IT职场之办公室环境重要吗?
  3. 为什么我们从Angular 2迁移到Vue.js(为什么我们没有选择React)
  4. 计算机四年级下册教案泰山版,泰山版信息技术四年级下册4、制作作息时间表教案设计...
  5. 3、C#面向对象:封装、继承、多态、String、集合、文件(下)
  6. 部编版是什么版本_部编版是人教版吗
  7. 关于CSS与HTML知识点总结(二)
  8. 无法删除计算机文件是什么意思,该计算机是Windows10系统,我不知道为什么最近无法删除某些文件...
  9. Embedding技术在商业搜索与推荐场景的实践
  10. python datetime格式_python time和datetime常用写法格式
  11. Navicat for my sql 数据结构导出(制作数据字典)
  12. 读书笔记—《雷达信号处理基础》第一章 雷达系统与信号处理概述
  13. traceroute不通linux,能ping通traceroute不通
  14. 努比亚(nubia) Z18 mini NX611J 解锁BootLoader 并刷入recovery ROOT
  15. 新辰:雕爷与张朝阳分享创业感悟 给90后创业者打鸡血共勉
  16. 计算机课听课评语和建议,听课记录的评语及建议
  17. 支付宝对账数据下载及解析
  18. hbase的master启动失败 master running as process 9400. Stop it first.
  19. linux文件权限 705,Linux 文件权限 - osc_86eb7mly的个人空间 - OSCHINA - 中文开源技术交流社区...
  20. c语言画伯努利分布图像,C++ - 随机生成器 伯努利分布(bernoulli distribution) 的 详解 及 代码...

热门文章

  1. 手机影像ISP流程:AWB(1)
  2. 3A(AF AE AWB)综述
  3. java计算机毕业设计游泳馆信息管理系统源程序+mysql+系统+lw文档+远程调试
  4. centos 零碎学习小记 11.
  5. 1553B 协议详解
  6. vue文件下载及重命名
  7. 如何维持手机电池寿命_手机电池寿命怎么延长
  8. word段落每行首字怎么对齐_怎样使word文章段落乖乖对齐!一个设置就行!
  9. 注册微信公众平台测试账号
  10. 连续子串最大和——python实现