前端實現自定義微信分享h5頁面的標題,描述和圖片


微信公眾平台文檔地址:https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html

1.首先要先申請一個微信公眾號;

2.登錄公眾號后台綁定域名,配置js安全域名(不支持ip),具體如下;

登錄地址:https://mp.weixin.qq.com/

登錄成功后,點擊功能設置

 

設置綁定域名

 

注意將文件下載下載上傳至服務器的根目錄下,並將需要綁定的域名填寫在對應處,然后點擊保存

 

 

 

3.需要后端配合,前端掉后端接口,把分享的頁面網址傳給后端;

 

4.后台調用微信的接口,返回需要必填的參數,必填參數如下,最后的jsApiList是使用的js接口列表,不需要后端返回;

wx.config({ debug: true, // 開啟調試模式,調用的所有api的返回值會在客戶端alert出來,若要查看傳入的參數,可以在pc端打開,參數信息會通過log打出,僅在pc端時才會打印。 appId: '', // 必填,公眾號的唯一標識 timestamp: , // 必填,生成簽名的時間戳 nonceStr: '', // 必填,生成簽名的隨機串 signature: '',// 必填,簽名 jsApiList: [] // 必填,需要使用的JS接口列表 });


后端需要給你返回的數據

 

 



5.在需要調用JS接口的頁面引入JS文件,(支持https):http://res.wx.qq.com/open/js/jweixin-1.6.0.js
<script src="https://res.wx.qq.com/open/js/jweixin-1.6.0.js"></script>
這里使用的是jquery的ajax調用接口,大家可以根據項目的配置來調整
注意:該功能是調用的微信接口,所以需要判斷是當前瀏覽器是否是微信瀏覽器,如果是微信瀏覽器的話在進行分享處理
// 微信分享
$(function(){
  var apiRes = {};
  $.ajax({
    //請求方式
    type : "get",
    //請求的媒體類型
    contentType: "application/json;charset=UTF-8",
    //請求地址
    url : "接口的url?url="+window.location.href,
    //數據,json字符串
    data : '',
    //請求成功
    success : function(result) {
        if(result.status == 0) {//保存后端返回過來的數據
          apiRes = result.data;
          is_weixn();
        }else{
          console.log(result.statusText)
        }
    },
    //請求失敗,包含具體的錯誤信息
    error : function(e){
        console.log(e.status);
        console.log(e.responseText);
    }
  });
  
  function is_weixn(){//判斷是否是微信瀏覽器
    var ua = navigator.userAgent.toLowerCase();
    if(ua.match(/MicroMessenger/i)=="micromessenger") {//是微信瀏覽器
        var date = new Date().getTime();
        wx.config({
            debug: false,
            appId: apiRes.appId,
            timestamp: apiRes.timestamp,
            nonceStr: apiRes.noncestr,
            signature: apiRes.signature,
            jsApiList: [
              'onMenuShareTimeline',
              'onMenuShareAppMessage',
            ]
        });
      
        wx.ready(function () {
          // config信息驗證后會執行ready方法,所有接口調用都必須在config接口獲得結果之后,config是一個客戶端的異步操作,所以如果需要在頁面加載時就調用相關接口,則須把相關接口放在ready函數中調用來確保正確執行。對於用戶觸發時才調用的接口,則可以直接調用,不需要放在ready函數中。
          // 注冊分享朋友圈事件。
          wx.onMenuShareTimeline({
            title: 'MILESTONE', // 分享標題
            link: window.location.href, // 分享鏈接,該鏈接域名必須與當前企業的可信域名一致
            imgUrl: 'http://it.oss.qorosauto.com/qoros/mina/milestone.jpg', // 分享圖標
            success: function () {
                console.log('success!');
            },
            cancel: function () {
              console.log('cancel!');
            }
          });
       
          // 注冊分享朋友事件
          wx.onMenuShareAppMessage({
            title: '分享的標題', // 分享標題
            desc: '分享的描述',
            link: window.location.href, // 分享鏈接,該鏈接域名必須與當前企業的可信域名一致
            imgUrl: '圖標的鏈接', // 分享圖標
            success: function () {
                console.log('success!');
            },
            cancel: function () {
                console.log('cancel!');
            }
          });
        });
      
        wx.error(function(res){
            // config信息驗證失敗會執行error函數,如簽名過期導致驗證失敗,具體錯誤信息可以打開config的debug模式查看,也可以在返回的res參數中查看,對於SPA可以在這里更新簽名。
        });
    } else {
        return;
    }
  }
})

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM