`

利用WeixinJSBridge,控制分享到朋友圈和转发给好友的行为

 
阅读更多

在微信里,其实可以改变“分享到朋友圈”和“转发给好友”的默认行为。这些js接口,截止到今天(安卓版微信6.0)还是不公开的,微信的官方文档里完全没有提到,但是其实借助WeixinJSBridge是可以做到的

分享行为

可以控制以下几种行为

缩略图

默认是微信自动截取当前页面中第一张大图,也就是<img>标签,而且width要超过一定的值。display:none和background-image是不算的,只能是<img>标签

但是通过传递参数,可以自己指定一张图片

分享页面

默认分享的是当前页面,通过定制,可以指定一个URL,点击后会跳转到此URL

标题

分享文本的标题,只对“转发给好友”有效,“分享到朋友圈”不显示标题。默认会取当前页面的<head> -> <title>的内容,可以设置成任意文本

内容

分享文本的内容。在“转发给好友”时,默认是当前页面的URL。在“分享到朋友圈”时,默认是<head> -> <title>的内容,可以设置成任意文本

左下角的小签名

在朋友圈看不到(但是从APP里调用SDK分享到朋友圈,可以显示),“转发给好友”可以在左下角看到。这个行为比较复杂,如果转发的是一个图文消息,就是链接是mp.weixin.qq.com/s?__biz=xxxx这种的,左下角默认会带公众号的名字,但是不会有图片;否则的话,不会有签名。然后可以设置一个app_id,那么就都会显示签名。有趣的是,这里的app_id可以任意填,只要你能知道。而且如果填的是公众号的app_id,就不会有图片,图片的位置是一个白色小方块;如果填的是腾讯开放平台的app_id,就会带上一个图片

回调行为

分享到朋友圈,和转发给好友之后,其实在页面里都会得到js回调,而且是不同的回调,比如开始转发,取消转发,转发成功,每个阶段都会有回调函数。这个小秘密有时候非常有用,因为开发者就可以控制转发之后的行为。但是微信本身的态度是不鼓励引导分享,强制分享的,所以这些接口一直没有公开,而且或许有一天突然就被封了也说不定。毕竟不是没有先例,曾经连关注公众号都是有JS API了,现在早就不能用了

另外,android版的微信有BUG,只要用户点了转发到朋友圈,回调就会立刻被调用,不管之后用户是否真的分享,应该是android版微信的BUG,这个版本至今也没有修复。iOS版的微信没有这个BUG,所有回调都可以正确执行

lib

可以直接通过WeixinJSBridge实现本文说的功能,但是显然有更好的办法,用WeixinAPI这个第三方库,可以更容易地实现这些功能,在github上就可以找到,以下是最简单的示例代码,详细的文档见主页说明

var wxData = {
                "title": "标题写在这里",
                "link": "www.baidu.com",
                "appId": "your app_id",
                "desc": "the desc"
            };

            var wxCallbacks = {

                confirm: function(resp) {
                    // 当用户点击分享到朋友圈,就会触发此回调
                }
            };

            Api.shareToTimeline(wxData, wxCallbacks);
            Api.shareToFriend(wxData, {});


分享到:
评论

相关推荐

    微信浏览器内置JavaScript对象WeixinJSBridge使用实例

    主要介绍了微信浏览器内置JavaScript对象WeixinJSBridge使用实例,本文给出了分享到朋友圈、发送给好友、分享到腾讯微博、关注指定的微信号等功能代码,需要的朋友可以参考下

    WeixinJSBridge

    微信WeixinJSBridge API续_Alien的笔记.mht 微信内置JsAPI之WeixinJSBridge_Alien的笔记.mht 微信内置浏览器的JsAPI(WeixinJSBridge续)_Alien的笔记.mht

    基于js实现微信发送好友如何分享到朋友圈、微博

    微信浏览器内置了javascript私有对象WeixinJSBridge,可以实现发送给朋友、分享到朋友圈、分享到微博等功能。 [removed] var imgUrl = "图片地址"; var lineLink = "当前网址"; var descContent = "描述"; var ...

    微信内置浏览器私有接口WeixinJSBridge介绍

    主要介绍了微信内置浏览器私有接口WeixinJSBridge介绍,本文讲解了发送给好友、分享函数、隐藏工具栏、隐藏三个点按钮等功能,需要的朋友可以参考下

    微信WeixinJSBridge使用及结果判断

    微信WeixinJSBridge使用及结果判断

    JS实现微信里判断页面是否被分享成功的方法

    本文实例讲述了JS实现微信里判断页面是否被分享成功的方法。分享给大家供大家参考,具体如下: var shareData = { img_url: , img_width: 200, ... // 发送给好友 WeixinJSBridge.on('menu:share:appmessage',

    WeixinJSBridge资源整理

    这个是从网上整理出来的微信浏览器上可调用微信接口的资源,里面有详细的代码和注释说明,微信web开发者别错过。

    js微信分享API

    1、分享到微信朋友圈 2、分享给微信好友 3、分享到腾讯微博 4、隐藏/显示右上角的菜单入口 5、隐藏/显示底部浏览器工具栏 6、获取当前的网络状态 7、调起微信客户端的图片播放组件 8、关闭公众平台Web页面 /**! *...

    微信WeixinJSBridge API使用实例

    主要介绍了微信WeixinJSBridge API使用实例,本文直接给出HTML代码,代码中包含了很多实用功能,如图片预览、分享到微博、隐藏右上角按钮、获取网络状态、发起公众号微信支付等内容,需要的朋友可以参考下

    微信JSSDK分享功能图文实例详解

    这里以微信分享到朋友圈,分享给微信好友为例为参考,进行调用测试,想添加其他的功能,自行查看开发人员文档即可 工欲善其事,必先利其器,好好利用下边的帮助工具,都是腾讯给开发人员的工具 1.微信开发者说明文档...

    基于IOS端微信分享失效的踩坑及解决方法

    最近的一个公众号是基于vue的spa应用,在接入微信分享和微信语音的时候出现了:在Android上一切正常,但是在ios端调用wx.config的时候总是失败,去翻了官方文档也并没有找到解决方案,最后在测试中发现是因为初始化...

    微信公众平台JsAPIWeixinApi.zip

    1、WeixinApi为何诞生 以前顺便玩儿了下微信公众账号,做Web前端开发的,都对页面脚本充满...// 自定义分享到:微信好友、朋友圈、腾讯微博、QQ好友 WeixinApi.share(wxData,wxCallbacks); 标签:WeixinApi

    微信小程序实现禁止分享代码实例

    这篇文章主要介绍了微信小程序实现禁止分享代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 微信禁止分享 添加以下代码到网页中即可 [removed] ...

    读心术-HTML5源码

    只能用微信浏览器打开,支持微信分享,调用微信内部函数WeixinJSBridge,HTML单文件。

    微信公众号H5支付接口调用方法

    主要介绍了微信公众号H5支付接口调用方法,微信内H5调用支付接口代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

    JS通过调用微信API实现微信支付功能的方法示例

    在实现微信支付之前,需要到微信开发平台认证,这些认证和配置信息我就不多说了,这里主要从代码层面实现支付。 function onBridgeReady(){ WeixinJSBridge.invoke( 'getBrandWCPayRequest', { appId : wx2421...

    javascript 判断是否是微信浏览器的方法

    2.判断是否支持微信内置浏览器才支持的一些方法,比如WeixinJSBridge 本次先介绍第一中方法,第二种方法等哪天再更新! 判断代码如下: [removed] var ua = navigator.userAgent.toLowerCase(); var isWeixin = ...

Global site tag (gtag.js) - Google Analytics