Uniapp分享到微信

一、Uniapp微信授權

在使用Uniapp進行微信分享之前,首先需要獲取微信授權的許可權。微信授權是指用戶點擊允許授權之後,開發者可以獲得用戶的基本信息。

Uniapp中獲取微信授權的方法為uni.getUserInfo(Object callback),其中callback返回用戶信息,如下:

uni.getUserInfo({
    success: function(res) {
        console.log(res);
    }
});

此方法返回用戶信息如下:

{
    userInfo: {},
    rawData: "",
    signature: "",
    encryptedData: "",
    iv: ""
}

其中userInfo是用戶信息,rawData是不包含敏感信息的原始數據字元串,signature是使用SHA1演算法得出的簽名,用於驗證數據的真實性,encryptedData是包含用戶敏感信息的加密數據,iv是加密演算法的初始向量。

二、Uniapp微信分享

在獲得微信授權之後,Uniapp可以輕鬆地實現微信分享。首先需要在manifest.json文件中聲明微信分享的相關許可權,如下:

{
    "mp-weixin": {
        "appid": "xxxxxxxxxx",
        "permission": {
            "scope.userLocation": {
                "desc": "你的位置信息將用於小程序位置介面的效果展示"
            },
            "scope.userInfo": {
                "desc": "你的基本信息將用於小程序的登錄和身份驗證"
            }
        },
        "tabBar": {
            "color": "#666",
            "selectedColor": "#EA5149",
            "backgroundColor": "#fff",
            "borderStyle": "black",
            "list": [{
                "pagePath": "pages/index/index",
                "text": "首頁",
                "iconPath": "static/tabbar/home.png",
                "selectedIconPath": "static/tabbar/home_s.png"
            }]
        },
        "window": {
            "navigationBarBackgroundColor": "#fff",
            "navigationBarTextStyle": "black",
            "navigationBarTitleText": "微信分享測試",
            "backgroundColor": "#f2f2f2",
            "backgroundTextStyle": "light"
        },
        "networkTimeout": {
            "request": 10000,
            "downloadFile": 10000
        },
        "permission": {
            "scope.address": {
                "desc": "小程序需要您的微信通訊錄來幫助您快速找到您的朋友"
            }
        },
        "plugins": {
            "myPlugin": {
                "version": "1.0.1",
                "provider": "wxidXXXXXXXXXXXXXXXXX"
            }
        }
    }
}

其中appid為開發者在微信公眾平台獲取的應用ID,permission為需要聲明的許可權信息。

之後,在需要分享的頁面的.vue文件中,可以在組件的methods屬性中添加如下方法實現微信分享:

share: function() {
    uni.share({
        provider: "weixin",
        scene: "WXSceneSession",
        type: 5,
        href: "https://uniapp.dcloud.io/client",
        title: "uni-app",
        summary: "最好的跨平台開發框架",
        imageUrl: "https://vkceyugu.cdn.bspapp.com/VKCEYUGU-bg65noyh/c8383fb0-8b16-11eb-8db0-0910db1f4d7c.png",
        success: function(res) {
            console.log(JSON.stringify(res));
        },
        fail: function(err) {
            console.log(JSON.stringify(err));
        }
    });
}

其中provider為分享的平台,scene為分享的場景,type為分享的內容類型,href為分享的URL地址,title為分享的標題,summary為分享的副標題,imageUrl為分享的圖片URL。

三、Uniapp微信小程序登錄

與微信分享類似,Uniapp也可以通過微信小程序登錄獲取用戶的基本信息。首先需要在manifest.json文件中聲明登錄的相關許可權,如下:

{
    "mp-weixin": {
        "appid": "xxxxxxxxxx",
        "permission": {
            "scope.userLocation": {
                "desc": "你的位置信息將用於小程序位置介面的效果展示"
            },
            "scope.userInfo": {
                "desc": "你的基本信息將用於小程序的登錄和身份驗證"
            }
        },
        "tabBar": {
            "color": "#666",
            "selectedColor": "#EA5149",
            "backgroundColor": "#fff",
            "borderStyle": "black",
            "list": [{
                "pagePath": "pages/index/index",
                "text": "首頁",
                "iconPath": "static/tabbar/home.png",
                "selectedIconPath": "static/tabbar/home_s.png"
            }]
        },
        "window": {
            "navigationBarBackgroundColor": "#fff",
            "navigationBarTextStyle": "black",
            "navigationBarTitleText": "微信分享測試",
            "backgroundColor": "#f2f2f2",
            "backgroundTextStyle": "light"
        },
        "networkTimeout": {
            "request": 10000,
            "downloadFile": 10000
        },
        "permission": {
            "scope.address": {
                "desc": "小程序需要您的微信通訊錄來幫助您快速找到您的朋友"
            }
        },
        "plugins": {
            "myPlugin": {
                "version": "1.0.1",
                "provider": "wxidXXXXXXXXXXXXXXXXX"
            }
        }
    }
}

之後,在需要登錄的頁面的.vue文件中,可以在組件的methods屬性中添加如下方法實現微信登錄:

login: function() {
    uni.login({
        provider: "weixin",
        success: function(res) {
            console.log(JSON.stringify(res));
        },
        fail: function(err) {
            console.log(JSON.stringify(err));
        }
    });
}

其中provider為登錄的平台,success返回登錄信息。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/187463.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-11-28 06:23
下一篇 2024-11-28 06:23

相關推薦

  • uniapp分頁第二次請求用法介紹

    本文將從多個方面對uniapp分頁第二次請求進行詳細闡述,並給出對應的代碼示例。 一、請求參數的構造 在進行分頁請求時,需要傳遞的參數體包含當前頁碼以及每頁顯示的數據量。對於第二次…

    編程 2025-04-27
  • uniapp ios打包詳解

    一、環境搭建 首先需要安裝Xcode,並在Xcode中登錄自己的Apple ID,開啟自己的開發者賬戶。 接著,需要在uniapp項目中配置簽名證書和描述文件。步驟如下: 在Xco…

    編程 2025-04-25
  • uniapp導航欄字體大小探究

    隨著移動端應用的發展,導航欄越來越成為移動應用中一個重要的組成部分。在如此眾多的移動端開發框架中,uniapp已經成為了很多開發者的首選。在uniapp中,導航欄也是一個非常重要的…

    編程 2025-04-25
  • 全面解析uniapp如何獲取當前位置

    一、uniapp使用定位API實現實時定位 1、uniapp提供的定位API可以獲取當前設備位置,使用方法如下: // 開啟實時定位 uni.startLocationUpdate…

    編程 2025-04-25
  • uniapp面試題解析

    一、uniapp簡介 uniapp是一種基於vue.js框架的開源跨平台開發框架,可以讓開發者使用vue的語法在多個平台上進行一次編譯即可生成iOS、Android、Web和小程序…

    編程 2025-04-25
  • uniapp跳轉到外部鏈接詳解

    一、常規跳轉方式 1、使用a標籤進行跳轉: <a href=”https://www.baidu.com”>跳轉到百度</a> 2、使用window.loc…

    編程 2025-04-24
  • uniapp打包app指南

    一、準備工作 在開始打包app之前,我們需要預先準備好一些工作。首先,確保你已經安裝了相關的軟體:HBuilderX、Android SDK、Xcode(如果你需要在iOS上打包)…

    編程 2025-04-24
  • Uniapp小程序分包詳解

    一、分包原理 小程序分包是根據小程序自身限制,將小程序內部的代碼及資源分別打包成多個包,最終上傳到微信伺服器。具體原理如下: 1、小程序總體積不能超過 8M,同時需要包括框架、業務…

    編程 2025-04-23
  • 深入探討uniapp內嵌HTML頁面

    一、HTML頁面的嵌入方式 1、使用`uni-web-view`原生組件嵌入HTML頁面在uni-app中,可以使用`uni-web-view`組件來嵌入HTML頁面。其中,`un…

    編程 2025-04-23
  • UniApp二維碼生成詳解

    一、UniApp二維碼生成海報 海報是一種非常流行的宣傳方式。在UniApp中,我們可以利用uni-app-qrcode組件生成二維碼再利用canvas生成海報。具體步驟如下: 1…

    編程 2025-04-23

發表回復

登錄後才能評論