一、如何判断是否为微信内置浏览器?
答:通过Header信息里的User-agent来判断,通过识别MicroMessenger这个关键字来确定是否来自微信。即微信的内置浏览器的user-agent信息中含有MicroMessenger。
例如:
1
小米 2A手机微信内置浏览器中的useragent信息为:Mozilla/5.0(Linux;U;Android 4.1.1;zh-cn;MI 2A Build/JRO03L)AppleWebKit/534.30(KHTML,like Gecko) Version/4.0 Mobile Safri/534.30 MicroMessenger/5.0.3.354
2
3
谷歌浏览器:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.101 Safari/537.36
4
5
火狐浏览器:Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko/20100101 Firefox/24.0
6
7
IE浏览器:Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0; EIE10;ZHCNMSN)
二、如何获取Header中的user-agent信息?
答:在PHP中,可通过$_SERVER['HTTP_USER_AGENT']来获取user-agent信息。
三、微信分享到朋友圈的脚本奥秘
1
微信最近推出的一个社交工具网站www.faxinxi.la,能发投票、活动、文章。譬如你发一个投票,网址是http://www.faxinxila.com/post/vote,但你填完所有信息按提交后,网页地址并没有发生跳转,而是ajax提交信息后弹出的一个遮罩层,提示你点右上角的分享按钮,注意,点击分享齐纳网址一直保持在/post/vote路径,但点开分享里的信息已经发生了变化,分享出去后,网址也发生了变化,变成了/vote/3投票实际的展示路径。这是怎么做到的呢?
2
3
查看faxinxi里唯一js文件,你会发现一个WeixinJSBridge的输出对象,再对比下通过微信公众平台发出来的文章源文件,也有WeixinJSBridge对象脚本,问题迎刃而解,微信在内嵌webview
里输出了WeixinJSBridge对象供web断js调用。faxinxi已经将有用的js提取出来; ,详细脚本如下:
001
var dataForWeixin={
002
<!-- lang: js -->
003
appId:"",
004
<!-- lang: js -->
005
MsgImg:"http://img1.faxinxila.net/images/share_msg.png",
006
<!-- lang: js -->
007
TLImg:"http://img1.faxinxila.net/images/share.png",
008
<!-- lang: js -->
009
url:"http://faxinxi.la/vote/1",
010
<!-- lang: js -->
011
title:"input title here",
012
<!-- lang: js -->
013
desc:"input description here",
014
<!-- lang: js -->
015
fakeid:"",
016
<!-- lang: js -->
017
callback:function(){}
018
<!-- lang: js -->
019
};
020
<!-- lang: js -->
021
(function(){
022
<!-- lang: js -->
023
var onBridgeReady=function(){
024
<!-- lang: js -->
025
WeixinJSBridge.on('menu:share:appmessage', function(argv){
026
<!-- lang: js -->
027
WeixinJSBridge.invoke('sendAppMessage',{
028
<!-- lang: js -->
029
"appid":dataForWeixin.appId,
030
<!-- lang: js -->
031
"img_url":dataForWeixin.MsgImg,
032
<!-- lang: js -->
033
"img_width":"120",
034
<!-- lang: js -->
035
"img_height":"120",
036
<!-- lang: js -->
037
"link":dataForWeixin.url,
038
<!-- lang: js -->
039
"desc":dataForWeixin.desc,
040
<!-- lang: js -->
041
"title":dataForWeixin.title
042
<!-- lang: js -->
043
}, function(res){(dataForWeixin.callback)();});
044
<!-- lang: js -->
045
});
046
<!-- lang: js -->
047
WeixinJSBridge.on('menu:share:timeline', function(argv){
048
<!-- lang: js -->
049
(dataForWeixin.callback)();
050
<!-- lang: js -->
051
WeixinJSBridge.invoke('shareTimeline',{
052
<!-- lang: js -->
053
"img_url":dataForWeixin.TLImg,
054
<!-- lang: js -->
055
"img_width":"120",
056
<!-- lang: js -->
057
"img_height":"120",
058
<!-- lang: js -->
059
"link":dataForWeixin.url,
060
<!-- lang: js -->
061
"desc":dataForWeixin.desc,
062
<!-- lang: js -->
063
"title":dataForWeixin.title
064
<!-- lang: js -->
065
}, function(res){});
066
<!-- lang: js -->
067
});
068
<!-- lang: js -->
069
WeixinJSBridge.on('menu:share:weibo', function(argv){
070
<!-- lang: js -->
071
WeixinJSBridge.invoke('shareWeibo',{
072
<!-- lang: js -->
073
"content":dataForWeixin.title,
074
<!-- lang: js -->
075
"url":dataForWeixin.url
076
<!-- lang: js -->
077
}, function(res){(dataForWeixin.callback)();});
078
<!-- lang: js -->
079
});
080
<!-- lang: js -->
081
WeixinJSBridge.on('menu:share:facebook', function(argv){
082
<!-- lang: js -->
083
(dataForWeixin.callback)();
084
<!-- lang: js -->
085
WeixinJSBridge.invoke('shareFB',{
086
<!-- lang: js -->
087
"img_url":dataForWeixin.TLImg,
088
<!-- lang: js -->
089
"img_width":"120",
090
<!-- lang: js -->
091
"img_height":"120",
092
<!-- lang: js -->
093
"link":dataForWeixin.url,
094
<!-- lang: js -->
095
"desc":dataForWeixin.desc,
096
<!-- lang: js -->
097
"title":dataForWeixin.title
098
<!-- lang: js -->
099
}, function(res){});
100
<!-- lang: js -->
101
});
102
<!-- lang: js -->
103
};
104
<!-- lang: js -->
105
if(document.addEventListener){
106
<!-- lang: js -->
107
document.addEventListener('WeixinJSBridgeReady', onBridgeReady, false);
108
<!-- lang: js -->
109
}else if(document.attachEvent){
110
<!-- lang: js -->
111
document.attachEvent('WeixinJSBridgeReady' , onBridgeReady);
112
<!-- lang: js -->
113
document.attachEvent('onWeixinJSBridgeReady' , onBridgeReady);
114
<!-- lang: js -->
115
}
116
<!-- lang: js -->
117
})();
我们可以通过更改var dataForWeixin来改变分享的地址,图片,标题等。
原文地址:http://blog.4wer.com/wechat-timeline-share
分享到:
相关推荐
在微信分享到朋友圈的过程中,主要有以下几个关键步骤: 1. **初始化微信SDK**:在应用启动时,需要初始化微信SDK,这通常涉及到设置AppID和当前用户的OpenID(用户在微信中的唯一标识)。 2. **处理授权**:用户...
在Java开发中,微信分享到朋友圈的功能是一项常见的需求,尤其对于构建社交化应用或网站的开发者来说至关重要。这个功能涉及到微信官方提供的SDK(Software Development Kit)的使用,以及对OAuth2.0授权协议的理解...
本人已修改过代码,很好用,希望能帮到您们!微信分享到朋友圈最新代码20150117
ASP 微信分享、朋友圈自定义缩略图内容。 亲测可以使用。内含实例。
主要为大家详细介绍了vue微信分享到朋友圈,vue微信发送给好友功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
在Android平台上,微信分享到朋友圈和使用微信SDK进行开发是一项常见的功能需求,尤其对于社交类应用来说至关重要。本文将深入探讨如何实现这一功能,并详细解析微信SDK的核心概念和使用步骤。 1. **微信开放平台...
微信分享到朋友圈,分享给朋友JS代码。让大家相互学习进步吧
在.NET WebForm框架下开发微信分享到朋友圈的功能是一项常见的需求,尤其对于社交网络与应用程序的交互至关重要。这个名为"微信分享到朋友圈QQ.rar"的压缩包文件,显然包含了一个使用.NET WebForm技术实现的解决方案...
微信分享朋友圈,自定义标题、描述、图片,修改vr.php中的appId和appSecret,即可使用
【微信分享朋友圈】是微信平台中的一个重要功能,它允许用户将文字、图片、链接等内容发布到自己的朋友圈,与好友们进行互动和分享。这一功能在日常生活中被广泛使用,不仅促进了用户之间的信息交流,也是品牌推广和...
微信公众号分享朋友圈 h5实现js
最近做微信开发,对微信公众号的开发,现在好的都是分享到朋友圈,QQ,分享给好友等分享功能,这里记录下,有需要的朋友也可以看下。 // 微信分享 var wx = require('wechat-sdk'); rewardsResultService....
- 图片素材需要先上传到微信服务器,通过上传接口获取到media_id,然后在朋友圈分享接口中使用。 4. **调用朋友圈分享接口**: - 有了access_token和media_id后,构造分享内容,包括title(标题)、link(链接)...
微信分享到朋友圈的实现涉及微信开放平台的JS-SDK(JavaScript SDK)。开发者需要在微信开放平台注册应用,获取AppID和AppSecret,然后在网页中引入微信的JS库,并配置相应的权限,才能调用分享接口。这个插件可能...
微信小程序模仿朋友圈实现: 朋友圈发布 朋友圈点赞 朋友圈评论 朋友圈回复评论 点赞撤销 评论删除 已发布朋友圈删除 评论内容安全审核校验 微信小程序模仿朋友圈实现: 朋友圈发布 朋友圈点赞 朋友圈...
在Unity中实现截屏分享到微信、QQ等社交平台,通常需要借助特定的SDK,如ShareREC SDK。ShareREC SDK提供了方便的接口,允许开发者将游戏内的精彩瞬间截图并分享到用户的社交网络。 首先,我们需要理解Unity3dDemo...
微网页分享到微信朋友圈插件代码
c#微信自定义分享微信朋友圈,微信好友,自定义内容,图片,标题,分享朋友圈,检测是否分享成功,失败,取消,
原生js微信分享到朋友圈浮动层代码.zip