uniapp编写小程序

1.搭建uniapp项目(条件编译)

              在微信开发者工具中将端口打开(设置--安全设置)

2.登录流程

              先使用 uni.login(),从小程序服务器中得到一个用户临时登录凭证。(有效时间5分钟)     provider uni.getProvider

              再通过 uni.request()发送code给自己的项目服务器中去。

              后端得到用户的临时登录凭证code后,会将appid+appsecret+code发送给微信接口服务。(https://api.weixin.qq.com/sns/jscode2session 接口)

              微信接口服务就会去校验code是否失效,appid,appsecret是否是你的应用。校验通过后,会返回一个session_key(相当于是个密钥),openid(微信用户身份的唯一标识)到后端

       后端就可以通过openid来查询该用户在自己的系统里的信息(比如等级,昵称什么的)。后端会返回给前端一个登录状态(成功或失败,比如成功时就会返回一个token+用户内容。失败时,表示该用户并未在我们的小程序中进行注册--注册用户--uni.getUserProfile,得到用户信息--传递给后端进行注册)

       成功时,前端(小程序)会将token存到storage里面。下一次前端再次发起request请求会携带上token eg:可以判断用户是否绑定了手机号,若为空则去绑定手机号,若不为空,则表示登录系统成功。

3.支付

uniapp编写的app
        1. 支付宝支付
支付宝支付不需要知道是谁支付,只要支付就行
step1:创建订单信息,获取支付信息
       请求后端接口,传递订单信息,比如订单总金额。后端返回orderInfo信息
step2:发起支付
       uni.requestPayment({
              provider:’alipay’,
              orderInfo   (是一串字符串)
})
        1. 微信支付
step1:登录
step2:获取openid
step3:创建订单获取支付信息
step4:发起支付
uniapp编写的小程序支付

先去请求后端接口,让其生成前端之后uni.requestPayment(obj)obj参数信息

4.自动定位

uni.getLocation(OBJECT)  可以获取当前位置的经纬度

        type:’wgs84’|’gcj02’   success(res){可以得到经纬度}

uni.openLocation(obj)  根据经纬度获取位置

        latitudelongitude(需要是gcj02获得的) success(res)

   

5.分享

       小程序:不支持API调用,只能用户主动点击触发分享。可使用自定义按钮方式 <button open-type="share"> 或监听系统右上角的分享按钮 onShareAppMessage 进行自定义分享内容

              小程序中用户点击分享后,在 js 中定义 onShareAppMessage 处理函数(分享给朋友)(和 onLoad 等生命周期函数同级),设置该页面的分享信息

  • 用户点击分享按钮的时候会调用。这个分享按钮可能是小程序右上角原生菜单自带的分享按钮,也可能是开发者在页面中放置的分享按钮(<button open-type="share">);
  • 此事件需要 return 一个Object,用于自定义分享内容。
6.持久化

uniapp中,使用piniavuex插件。默认使用 localStorage 实现持久化,

       小程序端不兼容,需要替换持久化 API

uniapp的分包

page.json中配置subPackages

subPackages 节点接收一个数组,数组每一项都是应用的子包,其属性值root(子包的根目录)和pages子包由哪些页面组成,参数同pages

小程序传参问题

  在微信小程序中,不能使用vuerouter,

<navaigator url=”/xxx”></navigator>  open-type默认值是”navigate”

或wx.navigatorTo({url:’/xxx’})

不能跳到tabbar页面,只能往非tabbar页面跳转

传参:可以直接以查询字符串形式进行拼接

<navaigator url=”/xxx” open-type=”switchTab”></navigator>

或wx.switchTab()

不支持查询字符串的拼接

传参:借助本地存储。wx.setstorageSync()   wx.getstorageSync()

           借助全局globalData完成

在跳转到的页面,onLoad:function(query){}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值