1. 程式人生 > >[h5+api]移動app開發用到的微信好友,朋友圈,qq好友,新浪微博分享合集

[h5+api]移動app開發用到的微信好友,朋友圈,qq好友,新浪微博分享合集

適用H5+環境,能夠使用plus方法的移動app中

/**
 * Created by HBuilder.
 * User: tyx
 * Date: 2018-11-21
 * Time: 17:28:51
 */

/**
 * 初始化分享服務
 */
//---------------H5 plus事件處理
function plusReady(){
    updateSerivces();   //更新分享服務
}
if(window.plus){
    plusReady();
}else{
    document.addEventListener('plusready', plusReady, false
); } /** * 更新分享服務 */ var shares=null; var sweixin=null; //微信分享 var sqq=null; //QQ分享 var sweibo=null; //新浪微博分享 //------------獲取服務列表 function updateSerivces(){ plus.share.getServices(function(s){ shares={}; for(var i in s){ var t=s[i]; shares[t.id]=t; } console.log(shares); sweixin
=shares['weixin']; sqq=shares['qq']; sweibo=shares['sinaweibo']; }, function(e){ console.log('獲取分享服務列表失敗:'+e.message); }); } /** * 呼叫分享函式 */ /** * 分享時傳入的必要引數 * @param {string} web_state 分享型別(weixin 微信;qq qq分享;weibo 微博分享) * @param {function} web_success 成功回撥 * @param {function} web_error 失敗回撥 * @param {string} web_href 分享連結 * @param {string} web_title 分享標題 * @param {string} web_content 分享描述(選填) * @param {string} weixin_bottons 分享微信渠道(分享微信時必填)(contancts 我的好友;moments 朋友圈) * @param {string} weixin_pic 分享微信logo圖(選填) * @param {string} weibo_pic 分享微博圖片地址(分享微博時選填) * @param {string} weibo_call 分享時@微博使用者(選填) * @return {string}
*/ //-------------傳入分享訊息 function changeShare(web_state,web_success,web_error,web_href,web_title,web_content,weixin_buttons,weixin_pic,weibo_pic,weibo_call,web_true,web_false){ //分享完畢後的回撥函式判斷 if(typeof web_success === "function") { var web_true=web_success; }else{ var web_true=function(){console.log("----發表成功------")}; } if(typeof web_error === "function") { var web_false=web_error; }else{ var web_false=function(){console.log("----發表失敗------")}; } if(!web_state){ return "分享型別引數不全,缺少web_state"; } if(web_state == 'weixin'){ //驗證引數完整性 if(!web_href || !web_title || !weixin_buttons){ return "微信分享缺少必要引數,web_href web_title weixin_buttons"; } //微信分享渠道 if(weixin_buttons == "contancts"){ var web_buttons={title:'我的好友',extra:{scene:'WXSceneSession'}}; }else if(weixin_buttons == "moments"){ var web_buttons={title:'朋友圈',extra:{scene:'WXSceneTimeline'}}; }else{ return "微信分享引數有誤,weixin_buttons"; } //呼叫微信分享函式 sweixin_shareWeb(web_href,web_title,web_content,web_buttons,weixin_pic,web_true,web_false);//呼叫微信分享功能 }else if(web_state == "qq"){ //驗證引數完整性 if(!web_href || !web_title){ plus.nativeUI.alert('qq分享缺少必要引數,web_href web_title'); return "qq分享缺少必要引數,web_href web_title"; } //呼叫qq分享函式 sqq_shareText(web_href,web_title,web_content,web_true,web_false); }else if(web_state == "weibo"){ if(!web_title){ return "微博分享缺少必要引數,web_title"; } if(!weibo_call){ weibo_call=''; } if(!weibo_pic){ weibo_pic=''; } sweibo_shareImage(web_href,web_title,weibo_pic,weibo_call,web_true,web_false);//呼叫微博分享功能 } } /** * 處理分享方向 */ //-----------微信分享 // 分享網頁 function sweixin_shareWeb(web_href,web_title,web_content,web_buttons,weixin_pic,web_true,web_false){ var sweixin_msg={type:'web',thumbs:[weixin_pic]}; sweixin_msg.href=web_href; sweixin_msg.title=web_title; sweixin_msg.content=web_content; sweixin?share(sweixin, sweixin_msg, web_buttons,web_true,web_false):plus.nativeUI.alert('當前環境不支援微信分享操作!'); } //-----------QQ分享 // 分享文字 function sqq_shareText(web_href,web_title,web_content,web_true,web_false){ var sqq_msg={type:'text'}; sqq_msg.title=web_title; sqq_msg.content=web_content; sqq_msg.href=web_href; sqq?share(sqq,sqq_msg,'',web_true,web_false):plus.nativeUI.alert('當前環境不支援QQ分享操作!'); } //-----------微博分享 // 分享圖片 function sweibo_shareImage(web_href,web_title,weibo_pic,weibo_call,web_true,web_false){ var sweibo_msg={type:'image'}; if(web_href){ sweibo_msg.content=web_title+' '+weibo_call+' 連結地址是'+web_href; }else{ sweibo_msg.content=web_title+' '+weibo_call; } sweibo_msg.pictures=[weibo_pic]; sweibo?share(sweibo, sweibo_msg,'',web_true,web_false):plus.nativeUI.alert('當前環境不支援新浪微博分享操作!'); } /** * 連結分享渠道 */ //-----------------分享 function share(srv,msg,button,web_true,web_false){ console.log('分享操作:'); if(!srv){ console.log('無效的分享服務!'); return "無效的分享服務"; } button&&(msg.extra=button.extra); // 傳送分享 if(srv.authenticated){ console.log('---已授權---'); doShare(srv, msg,web_true,web_false); }else{ console.log('---未授權---'); srv.authorize(function(){ doShare(srv, msg,web_true,web_false); }, function(e){ console.log('認證授權失敗:'+JSON.stringify(e)); plus.nativeUI.alert('認證授權失敗,請更新客戶端'); }); } } //---------------傳送分享 function doShare(srv, msg,web_true,web_false){ console.log(JSON.stringify(msg)); srv.send(msg, function(){ console.log('分享到"'+srv.description+'"成功!'); web_true(); }, function(e){ console.log('分享到"'+srv.description+'"失敗: '+JSON.stringify(e)); web_false(); }); }