亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

微信小程序開發常用功能有哪些

發布時間:2022-08-30 14:06:23 來源:億速云 閱讀:122 作者:iii 欄目:移動開發

本文小編為大家詳細介紹“微信小程序開發常用功能有哪些”,內容詳細,步驟清晰,細節處理妥當,希望這篇“微信小程序開發常用功能有哪些”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。

獲取用戶信息

調用 wx.getUserProfile 方法獲取用戶基本信息。頁面產生點擊事件(例如 buttonbindtap 的回調中)后才可調用,每次請求都會彈出授權窗口,用戶同意后返回 userInfo

具體參數如下:

屬性類型默認值必填說明
langstringen顯示用戶信息的語言
descstring
聲明獲取用戶個人信息后的用途,不超過30個字符
successfunction
接口調用成功的回調函數
failfunction
接口調用失敗的回調函數
completefunction
接口調用結束的回調函數(調用成功、失敗都會執行)

示例代碼

wx.getUserProfile({
    desc: '用于完善用戶基本資料', // 聲明獲取用戶個人信息后的用途,不超過30個字符
    success: (res) => {
        console.log(res.userInfo));
    }
})

獲取到的返回值

{
  "nickName": "秋梓", // 微信昵稱
  "gender": 0,
  "language": "zh_CN",
  "city": "",
  "province": "",
  "country": "",
  "avatarUrl": "https://thirdwx.qlogo.cn/mmopen/vi_32/qrSYVbDbBhunywgP5HTx4mhT8HVNzhmlibd8pfYo4guPJ5w/132" // 頭像
}

獲取手機號

目前該接口針對非個人開發者,且完成了認證的小程序開放(不包含海外主體)。需謹慎使用,若用戶舉報較多或被發現在不必要場景下使用,微信有權永久回收該小程序的該接口權限。

使用方法

需要將 button 組件 open-type 的值設置為 getPhoneNumber,當用戶點擊并同意之后,可以通過 bindgetphonenumber 事件回調獲取到動態令牌code,然后把code傳到開發者后臺,并在開發者后臺調用微信后臺提供的 phonenumber.getPhoneNumber 接口,消費code來換取用戶手機號。每個code有效期為5分鐘,且只能消費一次。

注:getPhoneNumber 返回的 codewx.login 返回的 code 作用是不一樣的,不能混用。

代碼示例

<button open-type="getPhoneNumber" bindgetphonenumber="getPhoneNumber"></button>
Page({
  getPhoneNumber (e) {
    console.log(e.detail.code)
  }
})

返回參數說明

參數類型說明最低版本
codeString動態令牌。可通過動態令牌換取用戶手機號。使用方法詳情 phonenumber.getPhoneNumber 接口

然后通過 code 換取用戶手機號。 每個code只能使用一次,code的有效期為5min

調用如下接口

POST https://api.weixin.qq.com/wxa/business/getuserphonenumber?access_token=ACCESS_TOKEN

請求參數

屬性類型默認值必填說明
access_token / cloudbase_access_tokenstring
接口調用憑證
codestring
手機號獲取憑證

返回的 JSON 數據包

屬性類型說明
errcodenumber錯誤碼
errmsgstring錯誤提示信息
phone_infoObject用戶手機號信息

返回結果示例

{
    "errcode":0,
    "errmsg":"ok",
    "phone_info": {
        "phoneNumber":"xxxxxx",
        "purePhoneNumber": "xxxxxx",
        "countryCode": 86,
        "watermark": {
            "timestamp": 1637744274,
            "appid": "xxxx"
        }
    }
}

實現微信支付

喚起微信支付的核心方法調用 wx.requestPayment 方法,該方法具體參數如下

屬性類型默認值必填說明
timeStampstring
時間戳,從 1970 年 1 月 1 日 00:00:00 至今的秒數,即當前的時間
nonceStrstring
隨機字符串,長度為32個字符以下
packagestring
統一下單接口返回的 prepay_id 參數值,提交格式如:prepay_id=***
signTypestringMD5 僅在 v2 版本接口適用簽名算法,應與后臺下單時的值一致


HMAC-SHA256 僅在 v2 版本接口適用



RSA 僅在 v3 版本接口適用

paySignstring
簽名,具體見微信支付文檔
successfunction
接口調用成功的回調函數
failfunction
接口調用失敗的回調函數
completefunction
接口調用結束的回調函數(調用成功、失敗都會執行)
/**
 * 微信支付方法
 * @param {string} oderId 訂單id
 * @param {string} total 訂單金額
 * @param {stromg} openId 登陸人openid
 */
function weixinPayFun(data) {
  wx.showLoading({
    mask: true
  })
  const http = new Http()
  return new Promise((resolve, reject) => {
    // 請求支付接口
    http.post(`${env.fayongApi}/app/shopping/order/pay`, data).then(res => {
      // 獲取支付簽名信息
      let payInfo = res.data
      // 調起微信支付
      wx.requestPayment({
        "timeStamp": payInfo.timeStamp + '',
        "nonceStr": payInfo.nonceStr,
        "package": payInfo.package,
        "signType": "RSA",
        "paySign": payInfo.paySign,
        "success": function (res) {
          console.log(res, 'success');
          // 支付成功
          resolve(res)
        },
        "fail": function (err) {
          // 支付失敗
          reject(err)
        },
        "complete": function (res) {
          wx.hideLoading()
        }
      })
    })
  })
}

添加分享功能

在需要分享的分享的頁面中添加 onShareAppMessage 事件函數,此事件處理函數需要 return 一個 Object,用于自定義轉發內容,只有定義了此事件處理函數,右上角菜單才會顯示“轉發”按鈕

onShareAppMessage 方法具體參數如下

字段說明默認值最低版本
title轉發標題當前小程序名稱
path轉發路徑當前頁面 path ,必須是以 / 開頭的完整路徑
imageUrl自定義圖片路徑,可以是本地文件路徑、代碼包文件路徑或者網絡圖片路徑。支持PNG及JPG。顯示圖片長寬比是 5:4。使用默認截圖1.5.0
promise如果該參數存在,則以 resolve 結果為準,如果三秒內不 resolve,分享會使用上面傳入的默認參數
2.12.0

靜態分享

示例代碼

Page({
    // 分享
    onShareAppMessage() {
        return {
            title: "樂福健康", // 分享標題
            path: "pages/newhome/index", // 分享地址路徑
        }
    }
})

添加完成后點擊右上角膠囊按鈕會分享圖標會亮起

帶參分享

上面的分享是不帶參數的,我們可以直接在路徑中動態添加參數,分享后用戶點擊時會觸發 onLoad 函數獲取路徑中的參數值

// 分享
onShareAppMessage() {
    const that = this;
    return {
        title: that.data.goodInfo.goodName, // 動態獲取商品名稱
        path: "pages/component/orderparticulars/orderparticulars?id=" + that.data.productId, // 動態傳遞當前商品id
        imageUrl: that.data.background[0] // 獲取商品封面圖
    }
}

動態獲取分享圖片和標題后我們每次分享時會出現不同內容

全局分享

除此之外我們也可以添加全局分享功能

首先要在每個頁面中添加 onShareAppMessage 函數,函數體內容可以為空,如果函數體內容為空,則會使用我們在 app.js 中定義的默認分享方法,如果該函數返回了一個 object 則使用我們自定義的分享功能

在需要被分享的頁面添加如下代碼

Page({
    /**
     * 用戶點擊右上角分享
     */
    onShareAppMessage: function () {
		// 函數體內容為空即可
    }
})

接著在 app.js 中添加重寫分享方法

//重寫分享方法
overShare: function () {
    //間接實現全局設置分享內容
    wx.onAppRoute(function () {
        //獲取加載的頁面
        let pages = getCurrentPages(),
            //獲取當前頁面的對象
            view = pages[pages.length - 1],
            data;
        if (view) {
            data = view.data;
            // 判斷是否需要重寫分享方法
            if (!data.isOverShare) {
                data.isOverShare = true;
                view.onShareAppMessage = function () {
                    //重寫分享配置
                    return {
                        title: '分享標題',
                        path: "/pages/index/index"    //分享頁面地址
                    };
                }
            }
        }
    })
},

然后在 onLaunch 函數中調用該方法

onLaunch() {
    this.overShare()
}

分享按鈕

在開發中我們也會碰到點擊分享按鈕實現分享功能,實現代碼如下

首先在 html 中添加 button 按鈕。其中 open-typ 要等于 share,表示點擊這個按鈕注定觸發分享函數

<!-- 分享按鈕 -->
<van-button type="primary" icon="share" round class="search" open-type="share" size="small">
    分享
</van-button>

之后要確保我們在 js 中添加了 onShareAppMessage 函數

效果如下:

微信小程序開發常用功能有哪些

獲取用戶收貨地址

獲取用戶收貨地址。調起用戶編輯收貨地址原生界面,并在編輯完成后返回用戶選擇的地址。

wx.chooseAddress({
    success(res) {
        console.log(res.userName)
        console.log(res.postalCode)
        console.log(res.provinceName)
        console.log(res.cityName)
        console.log(res.countyName)
        console.log(res.detailInfo)
        console.log(res.nationalCode)
        console.log(res.telNumber)
    }
})

參數說明

屬性類型說明
userNamestring收貨人姓名
postalCodestring郵編
provinceNamestring國標收貨地址第一級地址
cityNamestring國標收貨地址第二級地址
countyNamestring國標收貨地址第三級地址
streetNamestring國標收貨地址第四級地址
detailInfostring詳細收貨地址信息(包括街道地址)
detailInfoNewstring新選擇器詳細收貨地址信息
nationalCodestring收貨地址國家碼
telNumberstring收貨人手機號碼
errMsgstring錯誤信息

預覽圖片

調用方法:wx.previewImage(Object object)

在新頁面中全屏預覽圖片。預覽的過程中用戶可以進行保存圖片、發送給朋友等操作。

屬性類型默認值必填說明最低版本
urlsArray.
需要預覽的圖片鏈接列表。2.2.3 起支持云文件ID。
showmenubooleantrue是否顯示長按菜單。 支持識別的碼:小程序碼 僅小程序支持識別的碼:微信個人碼、微信群碼、企業微信個人碼、 企業微信群碼與企業微信互通群碼;2.13.0
currentstringurls 的第一張當前顯示圖片的鏈接
referrerPolicystringno-referrerorigin: 發送完整的referrer; no-referrer: 不發送。格式固定為 https://servicewechat.com/{appid}/{version}/page-frame.html,其中 {appid} 為小程序的 appid,{version} 為小程序的版本號,版本號為 0 表示為開發版、體驗版以及審核版本,版本號為 devtools 表示為開發者工具,其余為正式版本;2.13.0
successfunction
接口調用成功的回調函數
failfunction
接口調用失敗的回調函數
completefunction
接口調用結束的回調函數(調用成功、失敗都會執行)

示例代碼

wx.previewImage({
  current: '', // 當前顯示圖片的http鏈接
  urls: [] // 需要預覽的圖片http鏈接列表
})

頁面跳轉

跳轉普通頁面

wx.navigateTo({
    url: '',
})

保留當前頁面,跳轉到應用內的某個頁面。但是不能跳到 tabbar 頁面。使用 wx.navigateBack 可以返回到原頁面。小程序中頁面棧最多十層

跳轉tabBar 頁面

跳轉到 tabBar 頁面,并關閉其他所有非 tabBar 頁面

wx.switchTab({
  url: '/index'
})

自定義組件

在小程序中的組件和普通頁面的 js 結構有很大差異,結構如下

// pages/TestComponent/test.js
Component({
    /**
     * 組件的屬性列表
     */
    properties: {
        userName:""
    },

     * 組件的初始數據
    data: {
     * 組件的方法列表
    methods: {
        // 獲取父組件傳遞過來的參數
        getPropName(){
            console.log(this.data.userName);
        }
    }
})

其中我們在 properties 對象中定義組件組件的屬性列表

然后再組件中添加觸發 getPropName 的方法

<button bind:tap="getPropName">獲取名稱</button>

在我們需要引入這個組件的頁面去聲明這個組件的名稱和地址,找到后綴為 json 的文件,添加如下代碼

{
  "usingComponents": {
    "test-component":"../TestComponent/test"
  }
}

之后我們在頁面中像使用普通標簽一樣使用這個組件,并且給組件傳遞數據

<test-component userName="張三"></test-component>

傳遞數據后我們即可實現點擊組件中的按鈕獲取父組件傳遞過來的值

定義全局組件

我們定義完組件后想要在全局使用,我們可以將這個組件定義為全局組件

首先找到項目中的 app.json 文件,找到 usingComponents 添加組件地址

{
    ......省略其他代碼
    "usingComponents": {
        "test-component":"./pages/TestComponent/test"
    }
}

聲明完成后我們即可在全局像使用標簽的方式使用該組件

設置默認頂部導航欄樣式

app.json 中添加如下代碼

{
    "window": {
        "backgroundTextStyle": "light",
        "navigationBarBackgroundColor": "#22a381",
        "navigationBarTitleText": "樂福健康",
        "navigationBarTextStyle": "white"
    }
}

全部參數列表

屬性類型默認值描述最低版本
navigationBarBackgroundColorHexColor#000000導航欄背景顏色,如 #000000
navigationBarTextStylestringwhite導航欄標題顏色,僅支持 black / white
navigationBarTitleTextstring
導航欄標題文字內容
navigationStylestringdefault導航欄樣式,僅支持以下值: default 默認樣式 custom 自定義導航欄,只保留右上角膠囊按鈕。iOS/Android 微信客戶端 7.0.0,Windows 微信客戶端不支持
backgroundColorHexColor#ffffff窗口的背景色
backgroundTextStylestringdark下拉 loading 的樣式,僅支持 dark / light
backgroundColorTopstring#ffffff頂部窗口的背景色,僅 iOS 支持微信客戶端 6.5.16
backgroundColorBottomstring#ffffff底部窗口的背景色,僅 iOS 支持微信客戶端 6.5.16
enablePullDownRefreshbooleanfalse是否開啟當前頁面下拉刷新。 詳見 Page.onPullDownRefresh
onReachBottomDistancenumber50頁面上拉觸底事件觸發時距頁面底部距離,單位為px。 詳見 Page.onReachBottom
pageOrientationstringportrait屏幕旋轉設置,支持 auto / portrait / landscape 詳見 響應顯示區域變化2.4.0 (auto) / 2.5.0(landscape)
disableScrollbooleanfalse設置為 true 則頁面整體不能上下滾動。 只在頁面配置中有效,無法在 app.json 中設置
usingComponentsObject頁面自定義組件配置1.6.3
initialRenderingCachestring
頁面初始渲染緩存配置,支持 static / dynamic2.11.1
stylestringdefault啟用新版的組件樣式2.10.2
singlePageObject單頁模式相關配置2.12.0
restartStrategystringhomePage重新啟動策略配置2.8.0

取消頂部默認的導航欄

找到頁面 json 文件添加 "navigationStyle":"custom",即可去掉默認導航欄

{
  "usingComponents": {
      
  },
  "navigationStyle":"custom"
}

讀到這里,這篇“微信小程序開發常用功能有哪些”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

兴文县| 上蔡县| 板桥市| 芜湖市| 宁晋县| 门头沟区| 琼中| 始兴县| 竹北市| 上虞市| 兰坪| 乐山市| 兖州市| 博客| 大关县| 福清市| 巴东县| 保山市| 沂水县| 鲁山县| 武隆县| 团风县| 苏尼特左旗| 日土县| 雅江县| 罗江县| 揭西县| 庆云县| 石狮市| 探索| 莒南县| 凭祥市| 泾阳县| 怀来县| 罗甸县| 临武县| 崇文区| 增城市| 屏边| 建德市| 巧家县|