微信公眾號H5授權(quán)登錄钻心,微信分享好友凄硼、朋友圈完整流程

安裝依賴

npm install xctc-utils@latest

獲取微信 jscode

  • 在項目啟動文件,如react項目的App.tsx扔役,VUE項目的App.vue文件中調(diào)用getUrlCode帆喇,該函數(shù)將執(zhí)行流程:
  • 微信 jscode 授權(quán)流程;

  • 通過微信授權(quán)返回的 jscode 執(zhí)行微信登錄

  • appId: 微信公眾號 appId

  • http: 執(zhí)行微信登錄方法亿胸, 通過 jscode 和 appId 執(zhí)行微信登錄操作

  • scope: 網(wǎng)頁授權(quán)類型 scope 默認 snsapi_userinfo

  • codeKey: 微信授權(quán)返回的 jscode 在本地存儲鍵坯钦,默認存儲sessionStorage,codeKey 默認存儲鍵 weixinAuthCode,默認配置情況下侈玄,獲取本地存儲 jscode方法:useUtils.getSessionStorage("weixinAuthCode")

  • stateKey: 微信授權(quán)返回鏈接攜帶的 state 在本地存儲鍵婉刀,默認值 weixinAuthState

  • cryptoiv:將地址欄攜帶參數(shù)進行加密iv值

  • cryptokey: 將地址欄攜帶參數(shù)進行加密key值

  • isPassLogin: 微信登錄成功后,是否終止程序繼續(xù)執(zhí)行序仙,在開發(fā)階段可以傳入此參數(shù)進行微信登錄測試

  • redirectUri: 微信授權(quán)回調(diào)地址突颊,正常情況不需要傳參

  • appIdKey: appId 傳遞到服務(wù)端的參數(shù)鍵 默認鍵值: app_id,根據(jù)后端的需求傳遞

  • jsCodeKey: appId 傳遞到服務(wù)端的參數(shù)鍵 默認鍵值: js_code,根據(jù)后端的需求傳遞

  • debuggerStatus 是否開啟 debugger 彈框提示

  • cb: 登錄成功后的回調(diào)函數(shù)律秃,如果不傳回調(diào)函數(shù)爬橡,登錄成功后會自動跳轉(zhuǎn),如果傳入該參數(shù)棒动,則返回值 {res:res服務(wù)端響應(yīng)的數(shù)據(jù)對象 , url:url當前拼接完整的跳轉(zhuǎn)地址 , params: params 前端傳遞給服務(wù)端的數(shù)據(jù)}

interface configOption {
    appId?:string;
    http?:any;
    scope?:string;
    codeKey?:string;
    stateKey?:string;
    cryptoiv?:string;
    cryptokey?:string;
    isPassLogin?:boolean;
    redirectUri?:string;
    appIdKey?:string;
    jsCodeKey?:string;
    debuggerStatus?:boolean;
    cb?:any;
}

默認情況下糙申,推薦傳遞參數(shù)如下,其它參數(shù)可不傳船惨,直接使用配置好的默認值柜裸,具體使用如下:

import useUtils from "xctc-utils"
const { getUrlCode } = useUtils.weixin
getUrlCode({
    appId:"wx2sdfsdfd1d2",
    http:weixinLogin,
    scope:"snsapi_base",
    appIdKey:"AppId",
    jsCodeKey:"JsCode",
    cb:(data:any)=>{
       // todo 執(zhí)行具體的流程
    })
})

wx.config接口注入權(quán)限驗證配置

同樣在 項目的 App 文件中調(diào)用該函數(shù)

  • appId: 微信公眾號 appId
  • http: 執(zhí)行config接口注入權(quán)限驗證方法, 通過 url 和 appId 執(zhí)行微信config權(quán)限操作
  • appIdKey: appId 傳遞到服務(wù)端的參數(shù)鍵 默認鍵值: appId粱锐,根據(jù)后端的需求傳遞
  • urlKey: url 傳遞到服務(wù)端的參數(shù)鍵 默認鍵值: url疙挺,根據(jù)后端的需求傳遞
  • url: 微信config接口注入權(quán)限驗證的域名
  • cb: config接口注入權(quán)限成功后的回調(diào)
  • jsApiList: 需要授權(quán)的接口
  • openTagList: 需要授權(quán)的dom標簽
interface ShareConfig{
    http?:any;
    cb?:any;
    appId:string;
    jsApiList?:string[];
    openTagList?:string[];
    url?:string;
    urlKey?:string ;
    appIdKey?:string;
}
const { configReady } = useUtils.weixin
configReady({
    appId:"wxsfsdfdsfd2",
    http:weixinShareReady,
    url:"https://xxx.com/",
    cb:(data:any)=>{
       // todo 執(zhí)行具體的流程
    })
})

微信分享注入

  • title: 分享標題
  • desc:分享描述
  • link:分享鏈接,該鏈接域名或路徑必須與當前頁面對應(yīng)的公眾號 JS 安全域名一致
  • imgUrl:分享圖標地址怜浅,不能是本地地址
  • data:微信分享時需要攜帶的數(shù)據(jù)铐然,默認傳鍵值格式{path:"xx",id:"234"}
  • iv:分享鏈接中對 state 數(shù)據(jù)加密的iv
  • key:分享鏈接中對 state 數(shù)據(jù)加密的 key
  • shareUrl:是否攜帶完整的分享鏈接,如果攜帶恶座,直接使用當前鏈接作為分享鏈接
  • dbug: 是否需要 alert 彈框锦爵,開發(fā)階段可傳參測試
interface ShareOptions{
    title?:string;
    desc?:string;
    link: '';
    imgUrl: '';
    data?:any;
    iv?:string;
    key?:string; 
    shareUrl?:string;
    dbug?:boolean; 
}

在需要加載微信分享的頁面,調(diào)用以下函數(shù)奥裸,具體傳參參考:

const { shareReady } = useUtils.weixin
shareReady({
     title:"主應(yīng)用首頁分享",
     desc:"主應(yīng)用一段描述文字",
     imgUrl:"https://xxx.com/7a890b7c.jpeg",
     link:"https://xxx.com/"
})
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末险掀,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子湾宙,更是在濱河造成了極大的恐慌樟氢,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,383評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件侠鳄,死亡現(xiàn)場離奇詭異埠啃,居然都是意外死亡,警方通過查閱死者的電腦和手機伟恶,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,522評論 3 385
  • 文/潘曉璐 我一進店門碴开,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人博秫,你說我怎么就攤上這事潦牛。” “怎么了挡育?”我有些...
    開封第一講書人閱讀 157,852評論 0 348
  • 文/不壞的土叔 我叫張陵巴碗,是天一觀的道長。 經(jīng)常有香客問我即寒,道長橡淆,這世上最難降的妖魔是什么召噩? 我笑而不...
    開封第一講書人閱讀 56,621評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮逸爵,結(jié)果婚禮上具滴,老公的妹妹穿的比我還像新娘。我一直安慰自己师倔,他們只是感情好抵蚊,可當我...
    茶點故事閱讀 65,741評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著溯革,像睡著了一般。 火紅的嫁衣襯著肌膚如雪谷醉。 梳的紋絲不亂的頭發(fā)上致稀,一...
    開封第一講書人閱讀 49,929評論 1 290
  • 那天,我揣著相機與錄音俱尼,去河邊找鬼抖单。 笑死,一個胖子當著我的面吹牛遇八,可吹牛的內(nèi)容都是我干的矛绘。 我是一名探鬼主播,決...
    沈念sama閱讀 39,076評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼刃永,長吁一口氣:“原來是場噩夢啊……” “哼货矮!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起斯够,我...
    開封第一講書人閱讀 37,803評論 0 268
  • 序言:老撾萬榮一對情侶失蹤囚玫,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后读规,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體抓督,經(jīng)...
    沈念sama閱讀 44,265評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,582評論 2 327
  • 正文 我和宋清朗相戀三年束亏,在試婚紗的時候發(fā)現(xiàn)自己被綠了铃在。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,716評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡碍遍,死狀恐怖定铜,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情怕敬,我是刑警寧澤宿稀,帶...
    沈念sama閱讀 34,395評論 4 333
  • 正文 年R本政府宣布,位于F島的核電站赖捌,受9級特大地震影響祝沸,放射性物質(zhì)發(fā)生泄漏矮烹。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 40,039評論 3 316
  • 文/蒙蒙 一罩锐、第九天 我趴在偏房一處隱蔽的房頂上張望奉狈。 院中可真熱鬧,春花似錦涩惑、人聲如沸仁期。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,798評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽跛蛋。三九已至,卻和暖如春痊硕,著一層夾襖步出監(jiān)牢的瞬間赊级,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,027評論 1 266
  • 我被黑心中介騙來泰國打工岔绸, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留理逊,地道東北人。 一個月前我還...
    沈念sama閱讀 46,488評論 2 361
  • 正文 我出身青樓盒揉,卻偏偏與公主長得像晋被,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子刚盈,可洞房花燭夜當晚...
    茶點故事閱讀 43,612評論 2 350

推薦閱讀更多精彩內(nèi)容