微信小程序视频缓存怎么弄
编辑:小飞燕 发布时间:2021-03-18 08:30:51
如果在微信小程序上看到有意思的视频,不能马上分享,比较好缓存。那么如何缓存微信小程序的视频呢?我们来看看。
微信小程序视频缓存分为同步和异步。同步方法有一个成功回调函数,表示数据处理成功后的操作。下面是小程序提供本地缓存操作界面:
插入wx.setstoragewx.setstoragesync
读取wx.getstoragewx.getstoragesync
删除wx . removestoragewx . removestoragesync。
清空wx . clearstoragewx . clearstoragesync。
获取缓存信息wx . getstorageinfowx . getstorageinfosync。
所有以同步结束的方法都是同步方法。同步方法和异步方法的区别是:
同步方法会阻止当前任务,直到同步方法处理返回。
异步方法不会插入当前任务。
微信小程序视频缓存的以下两种方法说明了同步和异步的区别:
小程序首先调用异步方法,然后调用同步方法
页面({
save:函数(e){
console.log('开始保存')
wx.setstorage({
key: 'key1 ',数据: '数据1 ',成功:功能(res){
console.log('异步保存成功')
}
})
wx.setstoragesync('key2 ',' data2 ')
console.log('同步保存成功')
}
})
执行结果:
可以看到同步方法保存成功在异步方法之前,说明异步方法没有阻塞当前任务。
先调用同步方法,再调用异步方法
页面({
save:函数(e){
console.log('开始保存')
wx.setstoragesync('key2 ',' data2 ')
console.log('同步保存成功')
wx.setstorage({
key: 'key1 ',数据: '数据1 ',成功:功能(res){
console.log('异步保存成功')
}
})
}
})
执行结果:
可以看出,异步方法只有在同步方法成功执行后才会被执行。
如果要缓存applet api,系统会提供applet接口wx.getstorageinfo获取相关信息。有了它,小程序开发者可以重新封装现有的小程序api,无论是插入缓存时间还是批量删除,判断缓存大小等等。
比较后一个问题是缓存隔离的级别:
同一个手机的不同小程序在逻辑存储中不是共享缓存,满足应用级隔离。
如果不同的用户扫描代码,同一个手机和同一个小程序不会共享缓存。在目前的测试条件下,是用户级隔离。
同样的手机,同样的小程序,同样的微信用户,前后扫码两次,都是用共享缓存。
同一个手机有同一个小程序,不同微信用户扫码两次切换使用。经过测试,它们属于同一个用户的共享缓存。
目前可以推断,在实机调试的情况下,每个小程序扫描用户都会分配10m的小程序视频本地缓存。
虽然微信对要缓存的视频内存大小有要求,但是实现微信小程序的视频缓存还是挺方便的。如果还是什么都不懂,可以尝试在源代理网络的小程序通道中搜索相关信息。
下面是题目开头的小程序如何实现在线支付。标题到此结束
微信比较近正式开通了小程序支付功能,也就是说用户可以像支付宝app一样使用小程序在线支付,那么如何使用这个功能呢?以下是小程序在线支付的开发流程和注意事项:
1.打开微信支付和微商户号(请在微信小程序商店搜索教程)
2.获取用户的openid
在主页上,我们需要从小程序的客户端js获取当前用户的openid,通过调用wx.login方法获取用户的代码,然后开发者服务器使用登录证书代码获取openid。
wx.login({
成功:功能(res) {
if (res.code) {
//发起网络请求
wx.request({
url : ' https://your websit/onlog in ',方法: '发布',数据: {
代码: res.code
},
成功:功能(res) {
var open id=res . data . open id;
},
fail:函数(err) {
console.log(错误)
}
})
} else {
console.log('获取用户登录态失败!'res.errmsg)
}
}
});
var code=req。param(' code ');
请求({
url : ' https://api。微信。qq。com/sns/jscode 2会话?appid=' appid ' secret=' secret ' js _ code=' code ' grant _ type=authorization _ code ',方法:“获取”
},函数(错误,响应,正文){
if(!err response.statuscode==200) {
json(json。parse(body));
}
});
3.获取预付编号和支付签名验证支付签名
这一步的过程就和服务号里的微信支付过程一样,分为客户端和服务器端
首先来看一下客户端射流研究…
在服务号里,我们是通过如下的代码来调起支付功能
函数jsapicall
{
weixinjsbridge.invoke(
' getbrandwcpayrequest ',{
appid': ' ',//公众号名称,由小程序商家传入
时间戳' : ' ',//时间戳,自1970年以来的秒数
noncestr ' : ' ',//随机串
包' : '预付款_id=',signtype':'md5 ',//微信签名方式:
paysign':'' //微信签名
},
功能(res){
weixinsbridge。日志(res . err _ msg);
if(res . err _ msg==' get _ brand _ wcpay _ request : ok '){
"警报("支付成功!');
}else{
"警报("支付失败!');
}
}
);
}
在小程序里,我们是通过wx.requestpayment方法来调起支付功能,当然在这之前,我们先要获取预付id。
wx.request({
url : ' https://您网站/服务/getpay ',方法: '发布,数据: {
登记号码:登记号码,/*订单号*/
total_fee:total_fee,/*订单金额*/
openid:openid
},
header: {
内容类型' : '应用程序/json '
},
成功:功能(res) {
wx.requestpayment({
timestamp':timestamp,noncestr ' : noncestr,包' : ' prevable _ id=' res . data。prevable _ id,signtype': 'md5 ',paysign ' : res . data。_ paysign js,success':function(res){
控制台。日志(res);
},
fail':function(res){
控制台。日志(' fail : ' json。stringify(res));
}
})
},
fail:函数(错误){
console.log(错误)
}
})
那在服务器端主要要实现的是预付编号的获取和签名支付签名
var预订编号=req。param('订房号码');
var total _ fee=req。param(' total _ fee ');
var open id=req。param(' open id ');
var body='小程序费用说明;
'https://api.mch.weixin.qq.com/pay/unifiedorder';
var formdata=
请求({
url: url,方法: '发布,body: formdata
},函数(错误,响应,正文){
if(!err response.statuscode==200) {
var预付款_id=getxmlnodevalue('预付款' id ',正文。tostring(' utf-8 ');
var tmp=预付费_ id。split('[');
var tmp1=tmp[2].split(']');
//签名
var _paysignjs=paysignjs(appid,mch_id,' prevable _ id=' tmp 1[0],' md5 ',时间戳);
var o={
预付_id: tmp1[0],_paysignjs: _paysignjs
}
res . send(o);
}
});
下面是用到的函数
函数paysignjs(appid,noncestr,package,signtype,timestamp) {
var ret={
appid: appid,pnoncestr: noncestr,package:包,signtype: signtype,timestamp:时间戳
};
var string=raw 1(ret);
string=string ' key=' key
console.log(字符串);
var crypto=require(' crypto ');
返回crypto.createhash('md5 ').更新(字符串",utf8 ").摘要(' hex ');
};
函数raw1(args) {
var keys=object。key(args);
keys=keys.sort
var new args={ };
keys.foreach(function(key) {
new args[key]=args[key];
});
var字符串=
for(var k in newargs) {
string=' k '=' new args[k];
}
string=string。substr(1);
返回字符串;
};
函数paysignjsapi(appid,attach,body,mch_id,nonce_str,notify_url,openid,out_trade_no,spbill_create_ip,total_fee,trade_type) {
var ret={
appid: appid,附件:附件,body:车身
mch_id: mch_id,nonce_str: nonce_str,notify_url: notify_url,openid: openid,out_trade_no: out_trade_no,sp bill _ create _ ip : sp bill _ create _ ip,total_fee: total_fee,贸易类型:贸易类型
};
var string=raw(ret);
string=string ' key=' key
var crypto=require(' crypto ');
返回crypto.createhash('md5 ').更新(字符串",utf8 ").摘要(' hex ');
};
函数原始(args) {
var keys=object。key(args);
keys=keys.sort
var new args={ };
keys.foreach(function(key) {
新参数[键。tolowercase]=args[key];
});
var字符串=
for(var k in newargs) {
string=' k '=' new args[k];
}
string=string。substr(1);
返回字符串;
};
函数getxmlnodevalue(node_name,xml) {
var tmp=xml。拆分(' node _ name ';');
var _tmp=tmp[1].split(');
return _ tmp[0];
}
这样简单3步,小程序的微信支付功能就接上了,就可以使用小程序在线付款了。下面是效果图:
上一篇:小程序搜米粒优惠券怎么获取
下一篇:微信小程序怎么获取通讯录