プロジェクトでJS-SDKを使用する手順

 

プロジェクトでJS-SDKを使用する手順

デマンドバックグラウンド:WeChatブラウザーでWebサイトページを開き、WeChatブラウザーに付属の共有ボタンを使用して友達や友達のサークルと共有します。共有する画像、説明、その他の関連情報をカスタマイズできます。

実装:JS-SDKを使用し、WeChatが提供するAPIを使用してパラメーターを構成します。実際、主にこのxiaobaiがJS-SDKを使用したことがないため、プロセス全体が非常に単純なので、使用方法を調査するのに少し時間がかかりました。JS-SDK公式ドキュメント

ステップ紹介:

  1. ドメイン名をバインドします。ドキュメントの説明を以下に示します。

ドメイン名はICPレコードで確認する必要がある      ことに注意してくださいさらに、証明書ファイルをダウンロードした後、ファイルをサーバーにアップロードします。サーバーにアクセスできる限り、ファイルをフロントエンドサーバーまたはバックエンドサーバーにアップロードできます。次に、対応するアップロードパスを入力します。

    2. JSファイルを紹介します。JSファイルを導入するには2つの方法があります。

        方法1:公式ドキュメントに示されているように、スクリプトタグを作成してから、対応するJSファイルを参照します。使用中は、JSファイルのインポート専用の関数を作成できます。

function importWx(callback) {
    if (window.wx) {
        callback && callback()
    } else {        
        var url = "/static/js/utils/jweixin-1.4.0.js";
        var script = document.createElement("script");
        script.src = url
        document.body.appendChild(script);
        if(script.addEventListener){
          script.addEventListener("load", callback, false);
        } else if (script.attachEvent){
          script.attachEvent("onreadystatechange", function(){
        
            var target = window.event.srcElement;
        
             if(target.readyState == "loaded" || target.readyState == "complete"){
              callback && callback.call(target);
            }
        
          });
        }
    }
}

        方法2:js-sdkをカプセル化するサードパーティライブラリを使用します。

       

//安装
npm install weixin-js-sdk

//使用
const wx = require("weixin-js-sdk");

    3.インターフェース許可認証を実行します。公式文書の説明を次の図に示します。

署名アルゴリズムの詳細な手順インターフェース許可認証は最初に署名を取得する必要があり、署名を取得するプロセスにはaccess_tokenなどの機密情報の取得が含まれるため、このプロセスはバックエンドで実行され、バックエンドのクラスメートはタイムスタンプを返すインターフェースnonceStrを提供します署名、jsapi_ticketおよびその他のフィールドを使用して、フロントエンドの学生が認証できます。

    4.確認後、WeChatのAPIインターフェイスを呼び出すことができます。

//wx-share.js
export const initWx = (wxConfig, shareConfig, cb) => {
  if (typeof window != "undefined") {
    const wx = require("weixin-js-sdk");
    wx.config(
      Object.assign(
        {
          debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
          appId: "", // 必填,公众号的唯一标识
          timestamp: "", // 必填,生成签名的时间戳
          nonceStr: "", // 必填,生成签名的随机串
          signature: "", // 必填,签名
          jsApiList: [
            "updateTimelineShareData",
            "onMenuShareTimeline",
            "updateAppMessageShareData",
            "onMenuShareAppMessage"
          ] // 必填,需要使用的JS接口列表
        },
        wxConfig
      )
    );

    wx.ready(function() {
      //需在用户可能点击分享按钮前就先调用
      //分享到朋友圈
      wx.updateTimelineShareData &&
        wx.updateTimelineShareData(
          Object.assign(
            {
              title: "", // 分享标题
              link: "", // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
              imgUrl: "" // 分享图标
            },
            shareConfig
          ),
          function(res) {
            //这里是回调函数
            cb && cb(res);
          }
        );
      wx.onMenuShareTimeline &&
        wx.onMenuShareTimeline(
          Object.assign(
            {
              title: "", // 分享标题
              link: "", // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
              imgUrl: "", // 分享图标
              success: function() {
                // 用户点击了分享后执行的回调函数
              }
            },
            shareConfig
          )
        );
      //分享给朋友
      wx.updateAppMessageShareData &&
        wx.updateAppMessageShareData(
          Object.assign(
            {
              title: "", // 分享标题
              desc: "", // 分享描述
              link: "", // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
              imgUrl: "", // 分享图标
              success: function() {
                // 设置成功
              }
            },
            shareConfig
          )
        );
      wx.onMenuShareAppMessage &&
        wx.onMenuShareAppMessage(
          Object.assign(
            {
              title: "", // 分享标题
              desc: "", // 分享描述
              link: "", // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
              imgUrl: "", // 分享图标
              type: "", // 分享类型,music、video或link,不填默认为link
              dataUrl: "", // 如果type是music或video,则要提供数据链接,默认为空
              success: function() {
                // 用户点击了分享后执行的回调函数
              }
            },
            shareConfig
          )
        );
    });

    wx.error(function(res) {
      console.log(res);
      // config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看,对于SPA可以在这里更新签名。
    });
  }
};

    5.使用方法:WeChatの共有が必要なページでInitWxを導入できます。たとえば、次のとおりです。

import React, { Component } from "react";
import axios from 'axios';
import { initWx } from "../../../../utils/wx-share";

class NewsArticleComponent extends Component {
    componentDidMount() {
        axios({
        	method: 'get',
       		url: "后端提供的返回签名接口"
    	}).then(res => {
            if(res && res.code === 0 && res.data){
                initWx({
                    ...res.data
                },{
                    title:"自定义title",
                    keywords:"自定义keywords",
            	    desc: "自定义描述内容",
            	    imgUrl: "自定义图片"
                })
            }
        });
    }
    render() {
        return (
        	<div>我要分享啦~~~</div>
        )
    }
}

効果画像:

        ここで成功!実際、ロジックとコードのこの部分は非常に単純です。主にそれを使用する方法を探求するのに時間がかかるため、この投稿がみんなの探査時間を短縮し、あなたと一緒に進歩することを願っています!

50件の元の記事を公開 Likes5 20,000以上の訪問

おすすめ

転載: blog.csdn.net/qq_31207499/article/details/102664651