一般情况用户首次打开小程序,我们需要加载该用户的一些默认配置和参数,就需要wx.request下api服务器的数据,然后通过页面wx.getStorageSync获取相应的配置。

然而由于wx.request是异步请求,而即便先执行了onLaunch或者onShow再执行onLoad,依然无法在onLoad用wx.getStorageSync获取到数据,这是因为wx.request的返回一般都在onLoad之后才获得。

目前我使用的方法是设置个setInterval(cb,1000),就是每秒执行一次cb,而cb是一个wx.getStorageSync函数,当读到数据后马上clearInterval。

代码如下:

onLoad(options){
var that = this
let timer = setInterval(function(){
let id = wx.getStorageSync(“Id”)
if(id)
{
clearInterval(timer)
that.setData({
id:id
})
}
},1000)
}

var data = new { keyword1 = new { value =”参数1″ }, keyword2 = new { value = “参数2”} }; //定义模板参数内容
WxJsonResult jresult = Senparc.Weixin.WxOpen.AdvancedAPIs.Template.TemplateApi.SendTemplateMessage(
AppId, openId, templateId, data , formId, returnPage, “需要突出的内容”, “#fff00”);//小程序appid,信息接收人的OpenID,模板消息的ID,模板消息参数数据,formID(通过report-submit表单获取),返回页面路径(如:/pages/home/index),需要突出的内容,突出内容的字体颜色

new TenPayV3UnifiedorderRequestData(
  WxOpenAppId,  //小程序的AppId
  WxOpenMerchantId,  //微信支付的商户ID
  “购买XXX”, //商品描述
  out_trade_no, //系统生成的订单号
  (int)amount, //付款金额,似乎会/100,所以订单金额要x100
  requestIp,  //付款者的IP
  “支付后回调路径”,
  Senparc.Weixin.TenPay.TenPayV3Type.JSAPI, //支付类型
  bag.OpenId,//用户的openid
  WxOpenMerchantKey, //微信支付设置的api key
  TenPayV3Util.GetNoncestr()); //随机生成的字串

每个参数的说明,供大家参考!

按照以往的概念,网络请求是可以这样子的:

string value = getWebSource(url) //函数名我瞎掰的,明白我意思就行

而如今程序则是完全依靠异步完成,只能:

wx.request({
  url:url,
  data:{datas},
  success:function(){
     逻辑代码
    }
})

而不能直接 string value=wx.request…….获取返回值

如今只能通过回调函数来完成了,例如:

function anyway(callback)
{
    wx.request({
      url:url,
     data:{datas},
     success:function(res){
        逻辑语句。。。。。
        callback&&callback(res)
    }
    })
}

调用就直接使用:

anyway(function(d){
    this or that.setData({
       res:d
    })
})

这样子就获取到了request的success传过来的res数据拉

生成带参数二维码后,如果要调试有2种方法,如图:

1、最简单的是选择最下面这个通过二维码编译,注意:如果生成透明背景的二维码,可能会编译失败,那么二维码打开并截图然后保存下,一般没问题了。

2、如果嫌麻烦,可以通过点添加编译模式,然后设置好进入的页面及传递的参数(二维码参数一般是scene=你设定的值),这样编译的时候可以选择你刚设定的这个编译方式。

做了个bottom通用模板页,内部组件绑定了事件,但是貌似无法正常识别出事件来。

问了度娘,发现大家都是在引用模板组件用view包括起来,然后给view绑定事件,转去调用模板页的事件。

但是这样似乎只能识别一个事件了,不知道有什么更好的方法!