wx_Api
判断小程序的API,回调,参数,组件等是否在当前版本可用,返回一个Bool值
wx.canIUse('button.open-type.getUserInfo')
触发用户授权窗口
<button open-type="getUserInfo" bindgetuserinfo="getUserInfo"> 获取头像昵称 </button>
//bindgetuserinfo 按钮api方法固定写法
用户点击确认回调
button api方法
点击存入globalData
初始化存入globalData
<button open-type="getUserInfo"> 获取头像昵称 </button>
getUserInfo: function(e) {
app.globalData.userInfo = e.detail.userInfo
this.setData({
userInfo: e.detail.userInfo,
hasUserInfo: true
})
}
判断是否存入用户信息,没有存在存入;
注意跟首页没有关系,
跟按钮上面是事件有关
初始化获取,点击获取用户信息逻辑
wx.getSetting({success:()=>{"返回用户所有用户授权"}})
照相机接口
因为,调用照相机获取临时图片格式,直接上传三方服务器,是不支持的,需要微信做解析,转发
wx.uploadFile 上传微信需要做转发看不到传输的参数
wx.chooseImage({
count: 1, //图片张数
sizeType: ['original', 'compressed'],//原图,压缩图,
sourceType: ['album', 'camera'], //本地相册,拍照
success :res=> {
const tempFilePaths = res.tempFilePaths//微信小程序图片临时路径
this.setData({tempFilePaths});
}
})
// 预览接口
viewImgs(index) {
wx.previewImage({
current: this.data.tempFilePaths[index], // 当前显示图片的http链接
urls:this.data.tempFilePaths // 需要预览的图片http链接列表
});
},
//微信小程序图片上传
fileUplaod() {
wx.uploadFile({
url: "http://wxs.ixinangou.net/index/index/dofiles",
filePath: this.data.tempFilePaths[0],
name: "file", //上传图片key
formData: {
user: "MSea" //需要额外携带参数
},
header: {
"content-type": "multipart/form-data"
},
success: res => {
console.log("data");
}
});
}
请求
微信原生请求接口
注意设置,不效验合法域名,回忆怎么添加合法域名
//new FormData();
axios({
method:"POST",
data:qs.stringify({
name:"Msea"
}),
url:"http://www.xxx.com"
})
// $_GET['name']
// $_POST['name']
//GET 会自动拼接参数
//queryStringParams
wx.request({
method: "GET",
url: "https://cnodejs.org/api/v1/topics",
data: {
uname: "Msea"
},
success: (res) => {
console.log(res)
}
})
//POST 默认参数为payLoad,为json
wx.request({
method: "POST",
url: "https://cnodejs.org/api/v1/topics",
data: {
uname: "Msea"
},
success: (res) => {
console.log(res)
}
})
//POST form-data 数据
// 'content-type': 'multipart/form-data' 用于文件上传
wx.request({
url: 'https://cnodejs.org/api/v1/topic/5433d5e4e737cbe96dcef312',
data:{fileId:'123'},
method:'POST',
header: {
'content-type': 'application/x-www-form-urlencoded'
},
success:function(res){}
})
使用第三方npm
工具 npm支持
从小程序基础库版本 [2.2.1] 或以上小程序支持使用 npm 安装第三方包
使用第三方flyio
- npm install flyio
- 详情>本地设置>使用npm
- 操作>工具>构建npm
注意:不是所有npm 模块都可以用,不要过度依赖npm,只有纯js可以用不涉及dom,window,
utils>http
var Fly=require("flyio");
var fly=new Fly
fly.config.baseURL="http://m.maoyan.com";
//添加请求拦截器
fly.interceptors.request.use((request)=>{
//给所有请求添加自定义header
request.headers["X-Tag"]="flyio";
//打印出请求体
console.log(request.body)
//终止请求
//var err=new Error("xxx")
//err.request=request
//return Promise.reject(new Error(""))
//可以显式返回request, 也可以不返回,没有返回值时拦截器中默认返回request
return request;
})
//添加响应拦截器,响应拦截器会在then/catch处理之前执行
fly.interceptors.response.use(
(response) => {
//只将请求结果的data字段返回
return response.data
},
(err) => {
//发生网络错误后会走到这里
//return Promise.resolve("ssss")
}
)
export default fly;
apis.js
import fly from "./http";
// 首页
export const loadgetIndexData = () => {
return fly.get('/ajax/movieOnInfoList', {
"optimus_uuid": "22921900AEE311E9858E611270825995E021A61EA257440EAC983979617E0E0F",
"optimus_risk_level": "71",
"optimus_code": "10",
"token": ""
})
}