微信是开放的吗,腾讯自己肯定说是。
可是一个分享网页链接的API都要搜半天也找不到一个官方说法,那算就“开放”吗。
关于分享网页链接,可以参见 分享网页链接到微信的“几种”方法
如果不借助JavaScript的话:
title标签这显然可控性不是很好:
目前综合查询总结下来,下面的代码经验证可以工作。使用的是被称为“Weixin JS接口”的东东。
var lineLink = 'http://../....'; // 要分享的页面的URL
var imgUrl = 'http://.../...'; // 显示在微信里的缩略图
var shareTitle = '页面标题'; // 页面标题
var descContent = "页面内容简介"; // 内容简介
var appid = ''; // APP ID, 可以为空
function wx_shareFriend() {
WeixinJSBridge.invoke('sendAppMessage',{
"appid": appid,
"img_url": imgUrl,
"img_width": "640",
"img_height": "640",
"link": lineLink,
"desc": descContent,
"title": shareTitle
}, function(res) {
//alert(res.err_msg);
})
}
function wx_shareTimeline() {
WeixinJSBridge.invoke('shareTimeline',{
"img_url": imgUrl,
"img_width": "640",
"img_height": "640",
"link": lineLink,
"desc": descContent,
"title": shareTitle
}, function(res) {
//alert(res.err_msg);
});
}
function wx_shareWeibo() {
WeixinJSBridge.invoke('shareWeibo',{
"content": descContent,
"url": lineLink,
}, function(res) {
//alert(res.err_msg);
});
}
function onBridgeReady(){
WeixinJSBridge.on('menu:share:appmessage', wx_shareFriend); // 发送给朋友
WeixinJSBridge.on('menu:share:timeline', wx_shareTimeline); // 分享到朋友圈
WeixinJSBridge.on('menu:share:weibo', wx_shareWeibo); // 分享到微博
}
if (typeof WeixinJSBridge == "undefined"){
if( document.addEventListener ){
document.addEventListener('WeixinJSBridgeReady', onBridgeReady, false);
}else if (document.attachEvent){
document.attachEvent('WeixinJSBridgeReady', onBridgeReady);
document.attachEvent('onWeixinJSBridgeReady', onBridgeReady);
}
}else{
onBridgeReady();
}
“Weixin JS接口”没有完整的公开文档(至少自己还没有通过公开渠道找到),只能零散记录整理如下。
function onBridgeReady(){
WeixinJSBridge.on('menu:share:appmessage', wx_shareFriend);
WeixinJSBridge.on('menu:share:timeline', wx_shareTimeline);
WeixinJSBridge.on('menu:share:weibo', wx_shareWeibo);
}
if (typeof WeixinJSBridge == "undefined"){
if( document.addEventListener ){
document.addEventListener('WeixinJSBridgeReady', onBridgeReady, false);
}else if (document.attachEvent){
document.attachEvent('WeixinJSBridgeReady', onBridgeReady);
document.attachEvent('onWeixinJSBridgeReady', onBridgeReady);
}
}else{
onBridgeReady();
}
WeixinJSBridge.call('hideOptionMenu');
WeixinJSBridge.call('hideToolbar');
WeixinJSBridge.invoke('closeWindow',{},function(res){
// alert(res.err_msg);
});
WeixinJSBridge.invoke('getNetworkType',{},function(e){
// WeixinJSBridge.log(e.err_msg);
});