//加载完后执行,只在微信浏览内执行
document.addEventListener('WeixinJSBridgeReady', function onBridgeReady() {
// 分享给微信好友 (点击右上角发送给朋友时执行)
var wxData = {
"appId": "wx69d816f8fbc1066c", // 服务号能够填写appId
"imgUrl" : 'http://www.scscms.com/weixin/p_w_picpaths/1.jpg',
"link" : 'http://www.scscms.com',
"desc" : '分享内容描述',
"title" : "分享标题"
};
WeixinJSBridge.on('menu:share:appmessage', function (argv) {
WeixinJSBridge.invoke('sendAppMessage', {
"appid":wxData.appId,
"img_url":wxData.imgUrl,
"link":wxData.link,
"desc":wxData.desc,
"title":wxData.title,
"img_width":"120",
"img_height":"120"
}, function (resp) {
alert(resp.err_msg);
// send_app_msg:cancel 用户取消
// send_app_msg:fail 发送失败
// send_app_msg:confirm 发送成功
});
});
});
点击后弹出分享界面,同时可输入评论。接收到分别是两条信息,评论先显示,而后显示分享的组合。若是你的域名在白名单中还能够直接执行sendAppMessage分享,不然提示access_denied错误。以下:
//分享给朋友
function sendAppMessage(title,desc,link,imgUrl){
WeixinJSBridge.invoke('sendAppMessage',{
"appid":'',//必须是正常的appid或者留空
"img_url":imgUrl,
"link":link,
"desc": desc,
"title":title
});
}
如下是分享到朋友圈代码:
//分享到朋友圈
function weixinShareTimeline(title,desc,link,imgUrl){
WeixinJSBridge.invoke('shareTimeline',{
"img_url":imgUrl,
"link":link,
"desc": desc,
"title":title
});
}
//点右上角菜单分享时
document.addEventListener('WeixinJSBridgeReady', function onBridgeReady() {
WeixinJSBridge.on('menu:share:timeline', function (argv) {
weixinShareTimeline(title,desc,link,imgUrl);
});
});
分享到腾讯微博代码:
function shareWeibo(content, url) {
WeixinJSBridge.invoke('shareWeibo', {
"content":content, //评论
"url":url //标题与概要图片在此自动获取
}, function (res) {
alert(res.err_msg);
//share_weibo:ok 分享成功
//share_weibo:cancel 用户取消
//share_weibo:fail 分享失败
});
}
//点击右上角菜单分享时共用数据
document.addEventListener('WeixinJSBridgeReady', function onBridgeReady() {
WeixinJSBridge.on('menu:share:weibo', function (argv) {
shareWeibo(content, url);
})
});
而针对微信浏览器右上角按钮及底部工具栏是能够隐藏或者显示的。
WeixinJSBridge.call('showOptionMenu');//显示网页右上角的按钮
WeixinJSBridge.call('hideOptionMenu');//隐藏网页右上角的按钮
WeixinJSBridge.call('showToolbar');//显示底部工具栏
WeixinJSBridge.call('hideToolbar');//隐藏底部工具栏
还有在连接URL后面配置上 #wechat_webview_type=1 用微信打开就会自动隐藏底部工具栏。解决部分人但愿进去就没有底部工具栏要求。网络
同时透露一个没公开的API,关闭微信浏览器返回微信聊天界面:
WeixinJSBridge.call('closeWindow');
获取用户的网络链接类型:
WeixinJSBridge.invoke('getNetworkType', {}, function (e) {
alert(e.err_msg);
/*network_type:wifi wifi网络
* network_type:edge 非wifi,包含3G/2G
* network_type:fail 网络断开链接
* network_type:wwan 2g或者3g
*/
});
获取不一样的连接传不一样的数据是很是有利的。好比在edge连接下就别给我整大图片出来。若是是wifi模式下你才可整个大大的漂亮的图片出来,还能够调用微信的看图片API哦:
//微信原生看图
var pic_list=['http://www.scscms.com/weixin/p_w_picpaths/1.jpg','http://www.scscms.com/weixin/p_w_picpaths/2.jpg'];//图片列表
WeixinJSBridge.invoke('p_w_picpathPreview', {
'current' : pic_list[0],
'urls' : pic_list
});
微信中回复文本连接地址会自动识别为连接地址而造成可点击的连接,在开发模式下或网页快速回复发送<a href="url">文本</a>或者<a href='url'>文本</a>可正常显示连接,但若是没加引号将不正常显示,还有在web微信里都不能正常显示html。url
Android平台下则能够经过<a href="weixin://contacts/profile/微信ID或微信号">的方式打开资料页,以便快速关注;WinPhone下,则是经过<a href="weixin://profile/微信ID">的方式打开。或者用下面代码来关注指定账号:
//关注指定的微信号
function weixinAddContact(name){
WeixinJSBridge.invoke("addContact", {webtype: "1",username: name}, function(e) {
WeixinJSBridge.log(e.err_msg);
//e.err_msg:add_contact:added 已经添加
//e.err_msg:add_contact:cancel 取消添加
//e.err_msg:add_contact:ok 添加成功
//e.err_msg:system:access_denied 拒绝访问
if(e.err_msg == 'add_contact:added' || e.err_msg == 'add_contact:ok'){
//关注成功,或者已经关注过
}
})
}