js微信分享API
本文为大家分享了js微信分享实现代码,供大家参考,具体内容如下
微信分享JsAPI
功能:
1、分享到微信朋友圈
2、分享给微信好友
3、分享到腾讯微博
4、隐藏/显示右上角的菜单入口
5、隐藏/显示底部浏览器工具栏
6、获取当前的网络状态
7、调起微信客户端的图片播放组件
8、关闭公众平台Web页面
/**! *微信内置浏览器的JavascriptAPI,功能包括: * *1、分享到微信朋友圈 *2、分享给微信好友 *3、分享到腾讯微博 *4、隐藏/显示右上角的菜单入口 *5、隐藏/显示底部浏览器工具栏 *6、获取当前的网络状态 *7、调起微信客户端的图片播放组件 *8、关闭公众平台Web页面 * *@authorzhaoxianlie */ varWeixinApi=(function(){ "usestrict"; /** *分享到微信朋友圈 *@param{Object}data待分享的信息 *@p-config{String}appId公众平台的appId(服务号可用) *@p-config{String}imageUrl图片地址 *@p-config{String}link链接地址 *@p-config{String}desc描述 *@p-config{String}title分享的标题 * *@param{Object}callbacks相关回调方法 *@p-config{Boolean}asyncready方法是否需要异步执行,默认false *@p-config{Function}ready(argv)就绪状态 *@p-config{Function}dataLoaded(data)数据加载完成后调用,async为true时有用,也可以为空 *@p-config{Function}cancel(resp)取消 *@p-config{Function}fail(resp)失败 *@p-config{Function}confirm(resp)成功 *@p-config{Function}all(resp)无论成功失败都会执行的回调 */ functionweixinShareTimeline(data,callbacks){ callbacks=callbacks||{}; varshareTimeline=function(theData){ WeixinJSBridge.invoke('shareTimeline',{ "appid":theData.appId?theData.appId:'', "img_url":theData.imgUrl, "link":theData.link, "desc":theData.title, "title":theData.desc,//注意这里要分享出去的内容是desc "img_width":"120", "img_height":"120" },function(resp){ switch(resp.err_msg){ //share_timeline:cancel用户取消 case'share_timeline:cancel': callbacks.cancel&&callbacks.cancel(resp); break; //share_timeline:fail发送失败 case'share_timeline:fail': callbacks.fail&&callbacks.fail(resp); break; //share_timeline:confirm发送成功 case'share_timeline:confirm': case'share_timeline:ok': callbacks.confirm&&callbacks.confirm(resp); break; } //无论成功失败都会执行的回调 callbacks.all&&callbacks.all(resp); }); }; WeixinJSBridge.on('menu:share:timeline',function(argv){ if(callbacks.async&&callbacks.ready){ window["_wx_loadedCb_"]=callbacks.dataLoaded||newFunction(); if(window["_wx_loadedCb_"].toString().indexOf("_wx_loadedCb_")>0){ window["_wx_loadedCb_"]=newFunction(); } callbacks.dataLoaded=function(newData){ window["_wx_loadedCb_"](newData); shareTimeline(newData); }; //然后就绪 callbacks.ready&&callbacks.ready(argv); }else{ //就绪状态 callbacks.ready&&callbacks.ready(argv); shareTimeline(data); } }); } /** *发送给微信上的好友 *@param{Object}data待分享的信息 *@p-config{String}appId公众平台的appId(服务号可用) *@p-config{String}imageUrl图片地址 *@p-config{String}link链接地址 *@p-config{String}desc描述 *@p-config{String}title分享的标题 * *@param{Object}callbacks相关回调方法 *@p-config{Boolean}asyncready方法是否需要异步执行,默认false *@p-config{Function}ready(argv)就绪状态 *@p-config{Function}dataLoaded(data)数据加载完成后调用,async为true时有用,也可以为空 *@p-config{Function}cancel(resp)取消 *@p-config{Function}fail(resp)失败 *@p-config{Function}confirm(resp)成功 *@p-config{Function}all(resp)无论成功失败都会执行的回调 */ functionweixinSendAppMessage(data,callbacks){ callbacks=callbacks||{}; varsendAppMessage=function(theData){ WeixinJSBridge.invoke('sendAppMessage',{ "appid":theData.appId?theData.appId:'', "img_url":theData.imgUrl, "link":theData.link, "desc":theData.desc, "title":theData.title, "img_width":"120", "img_height":"120" },function(resp){ switch(resp.err_msg){ //send_app_msg:cancel用户取消 case'send_app_msg:cancel': callbacks.cancel&&callbacks.cancel(resp); break; //send_app_msg:fail发送失败 case'send_app_msg:fail': callbacks.fail&&callbacks.fail(resp); break; //send_app_msg:confirm发送成功 case'send_app_msg:confirm': case'send_app_msg:ok': callbacks.confirm&&callbacks.confirm(resp); break; } //无论成功失败都会执行的回调 callbacks.all&&callbacks.all(resp); }); }; WeixinJSBridge.on('menu:share:appmessage',function(argv){ if(callbacks.async&&callbacks.ready){ window["_wx_loadedCb_"]=callbacks.dataLoaded||newFunction(); if(window["_wx_loadedCb_"].toString().indexOf("_wx_loadedCb_")>0){ window["_wx_loadedCb_"]=newFunction(); } callbacks.dataLoaded=function(newData){ window["_wx_loadedCb_"](newData); sendAppMessage(newData); }; //然后就绪 callbacks.ready&&callbacks.ready(argv); }else{ //就绪状态 callbacks.ready&&callbacks.ready(argv); sendAppMessage(data); } }); } /** *分享到腾讯微博 *@param{Object}data待分享的信息 *@p-config{String}link链接地址 *@p-config{String}desc描述 * *@param{Object}callbacks相关回调方法 *@p-config{Boolean}asyncready方法是否需要异步执行,默认false *@p-config{Function}ready(argv)就绪状态 *@p-config{Function}dataLoaded(data)数据加载完成后调用,async为true时有用,也可以为空 *@p-config{Function}cancel(resp)取消 *@p-config{Function}fail(resp)失败 *@p-config{Function}confirm(resp)成功 *@p-config{Function}all(resp)无论成功失败都会执行的回调 */ functionweixinShareWeibo(data,callbacks){ callbacks=callbacks||{}; varshareWeibo=function(theData){ WeixinJSBridge.invoke('shareWeibo',{ "content":theData.desc, "url":theData.link },function(resp){ switch(resp.err_msg){ //share_weibo:cancel用户取消 case'share_weibo:cancel': callbacks.cancel&&callbacks.cancel(resp); break; //share_weibo:fail发送失败 case'share_weibo:fail': callbacks.fail&&callbacks.fail(resp); break; //share_weibo:confirm发送成功 case'share_weibo:confirm': case'share_weibo:ok': callbacks.confirm&&callbacks.confirm(resp); break; } //无论成功失败都会执行的回调 callbacks.all&&callbacks.all(resp); }); }; WeixinJSBridge.on('menu:share:weibo',function(argv){ if(callbacks.async&&callbacks.ready){ window["_wx_loadedCb_"]=callbacks.dataLoaded||newFunction(); if(window["_wx_loadedCb_"].toString().indexOf("_wx_loadedCb_")>0){ window["_wx_loadedCb_"]=newFunction(); } callbacks.dataLoaded=function(newData){ window["_wx_loadedCb_"](newData); shareWeibo(newData); }; //然后就绪 callbacks.ready&&callbacks.ready(argv); }else{ //就绪状态 callbacks.ready&&callbacks.ready(argv); shareWeibo(data); } }); } /** *调起微信Native的图片播放组件。 *这里必须对参数进行强检测,如果参数不合法,直接会导致微信客户端crash * *@param{String}curSrc当前播放的图片地址 *@param{Array}srcList图片地址列表 */ functionimagePreview(curSrc,srcList){ if(!curSrc||!srcList||srcList.length==0){ return; } WeixinJSBridge.invoke('imagePreview',{ 'current':curSrc, 'urls':srcList }); } /** *显示网页右上角的按钮 */ functionshowOptionMenu(){ WeixinJSBridge.call('showOptionMenu'); } /** *隐藏网页右上角的按钮 */ functionhideOptionMenu(){ WeixinJSBridge.call('hideOptionMenu'); } /** *显示底部工具栏 */ functionshowToolbar(){ WeixinJSBridge.call('showToolbar'); } /** *隐藏底部工具栏 */ functionhideToolbar(){ WeixinJSBridge.call('hideToolbar'); } /** *返回如下几种类型: * *network_type:wifiwifi网络 *network_type:edge非wifi,包含3G/2G *network_type:fail网络断开连接 *network_type:wwan2g或者3g * *使用方法: *WeixinApi.getNetworkType(function(networkType){ * *}); * *@paramcallback */ functiongetNetworkType(callback){ if(callback&&typeofcallback=='function'){ WeixinJSBridge.invoke('getNetworkType',{},function(e){ //在这里拿到e.err_msg,这里面就包含了所有的网络类型 callback(e.err_msg); }); } } /** *关闭当前微信公众平台页面 */ functioncloseWindow(){ WeixinJSBridge.call("closeWindow"); } /** *当页面加载完毕后执行,使用方法: *WeixinApi.ready(function(Api){ *//从这里只用Api即是WeixinApi *}); *@paramreadyCallback */ functionwxJsBridgeReady(readyCallback){ if(readyCallback&&typeofreadyCallback=='function'){ varApi=this; varwxReadyFunc=function(){ readyCallback(Api); }; if(typeofwindow.WeixinJSBridge=="undefined"){ if(document.addEventListener){ document.addEventListener('WeixinJSBridgeReady',wxReadyFunc,false); }elseif(document.attachEvent){ document.attachEvent('WeixinJSBridgeReady',wxReadyFunc); document.attachEvent('onWeixinJSBridgeReady',wxReadyFunc); } }else{ wxReadyFunc(); } } } return{ version:"1.8", ready:wxJsBridgeReady, shareToTimeline:weixinShareTimeline, shareToWeibo:weixinShareWeibo, shareToFriend:weixinSendAppMessage, showOptionMenu:showOptionMenu, hideOptionMenu:hideOptionMenu, showToolbar:showToolbar, hideToolbar:hideToolbar, getNetworkType:getNetworkType, imagePreview:imagePreview, closeWindow:closeWindow }; })();
源码下载:js微信分享
本文已被整理到了《JavaScript微信开发技巧汇总》,欢迎大家学习阅读。
为大家推荐现在关注度比较高的微信小程序教程一篇:《微信小程序开发教程》小编为大家精心整理的,希望喜欢。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。