本文为您带来了微信小程序的相关知识,主要介绍了微信小程序开发的常用功能。本文通过实例代码向您详细介绍,对您的学习或工作具有一定的参考价值,希望对您有所帮助。
【相关学习推荐:小程序学习教程】
获取用户信息调用 wx.getUserProfile 获取用户基本信息的方法。页面产生点击事件(例如 button 上 bindtap 只有在回调中)后才能调用。授权窗口将在每个请求中弹出。用户同意后返回 userInfo
具体参数如下:
示例代码
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/vi32/qrSYVbDBhunywgP5HTx4mhT8HVNzhmlibd8pfYo4guPJ5w/132" // 头像
}目前,该界面是为非个人开发人员开放的,并已完成认证的小程序(不包括海外主体)。应谨慎使用。如果用户报告更多或发现在不必要的场景中使用,微信有权永久恢复小程序的界面权限。
使用方法
需要将 button 组件 open-type 的值设置为 getPhoneNumber,当用户点击并同意时,可以通过 bindgetphonenumber 事件回调获得动态令牌code,然后将code传输到开发者的后台,并在开发者后台调用微信后台提供的服务 phonenumber.getPhoneNumber 用户手机号码交换接口、消费code。每个code有效期为5分钟,只能消费一次。
注:getPhoneNumber 返回的 code 与 wx.login 返回的 code 功能不同,不能混用。
代码示例
<button open-type="getPhoneNumber" bindgetphonenumber="getPhoneNumber"></button>
Page({
getPhoneNumber (e) {
console.log(e.detail.code)
}
})返回参数说明
然后通过 code 交换用户的手机号码。 每个code只能使用一次,code的有效期为5min
调用以下接口
POST https://api.weixin.qq.com/wxa/business/getuserphonenumber?access_token=ACCESS_TOKEN
请求参数
返回的 JSON 数据包
返回结果示例
{
"errcode":0,
"errmsg":"ok",
"phone_info": {
"phoneNumber":"xxxxxx",
"purePhoneNumber": "xxxxxx",
"countryCode": 86,
"watermark": {
"timestamp": 1637744274,
"appid": "xxxx"
}
}
}实现微信支付
调用唤起微信支付的核心方法 wx.requestPayment 该方法具体参数如下
/**
* 微信支付方式
* @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 具体参数如下
静态分享
示例代码
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, // 动态传递当前商品idid
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)
}
})参数说明
预览图片
调用方法:wx.previewImage(Object object)
在新页面上全屏预览图片。用户可以在预览过程中保存图片并发送给朋友。
示例代码
wx.previewImage({
current: '', // 目前显示图片的http链接
urls: [] // HTTP链接列表中需要预览的图片
})跳转普通页面
wx.navigateTo({
url: '',
})保留当前页面,跳转到应用程序中的某个页面。但不能跳到 tabbar 页面。使用 wx.navigateBack 它可以返回到原始页面。在小程序中,页面堆栈最多10层
跳转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"
}
}所有参数列表
效果
找到页面 json 文件添加 "navigationStyle":"custom",可以去掉默认导航栏
{
"usingComponents": {
},
"navigationStyle":"custom"
}添加自定义样式后,可以达到以下效果
【相关学习推荐:小程序学习教程】
以上是微信小程序开发常用功能总结的详细内容,请关注其他相关文章!
微信小程序开发的常用功能汇总-小程序开发
关闭服务器端口,保障网络安全无忧!
精通远程桌面连接:命令操作全攻略
微信小程序全局配置及页面配置详细说明-小程序开发
高效配置服务器IP地址,轻松上手教程
亚洲与欧洲尺码差异:选购需明智分辨!
远程桌面服务升级,提升您的协作效率!
微信小程序全局配置及页面配置详细说明-小程序开发
微信小程序开发工具介绍-小程序开发
微信小程序实战项目富文本编辑器实现-小程序开发
textarea和input在微信小程序中的问题总结-小程序开发
菜鸟包裹的一方取消了亲友-手机软件
菜鸟包裹怎么查单号多少?手机软件
菜鸟包怎么查快递单号-手机软件
如何查看菜鸟包裹快递-手机软件
菜鸟包裹怎么查快递单号-手机软件
菜鸟包裹怎么查快递到哪里?手机软件
菜鸟包裹怎么查快递是什么?手机软件
菜鸟包裹如何检查快递重量-手机软件