手机遥控器在微信端的处理

手机遥控器最初打算以微信小程序作为平台,后来发现微信小程序未开放陀螺仪的接口,故最终打算用微信公众号平台,以网页的形式获取手机端陀螺仪的数据,来控制电视上VR视频的播放,在这个项目中,遇到的最大的困难是微信端的接入,现在做一个简单版的总结。

在公众号端开发时,如果不需要对微信公众号开发,则可以不进行服务器配置,先进入功能设置中,配置业务域名、js安全域名、网页授权域名。具体作用如下:

  • 业务域名:在微信浏览器中点击文本框,会弹出红色提醒语,通过配置业务域名可以将该提示去掉。设置业务域名后,在微信内访问该域名下网页时,不会被重新排版。
  • js安全域名:设置安全域名后,公众号开发者可在该域名下调用微信开发的js接口
  • 网页授权域名:设置网页授权域名后,微信会将授权数据传给一个回调页面,会掉页面需在此域名下,以确保安全可靠

如果需要调用微信接口(如扫一扫),就必须进行jssdk的接入,jssdk的接入流程如下:

  • 绑定js安全域名
  • 引入js文件。
  • 通过config接口注入权限验证配置。代码如下:
wx.config({
    debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
    appId: '', // 必填,公众号的唯一标识,在微信公众号中查看信息
    timestamp: , // 必填,生成签名的时间戳,可通过js获取当前时间的毫秒值
    nonceStr: '', // 必填,生成签名的随机串
    signature: '',// 必填,签名
    jsApiList: [] // 必填,需要使用的JS接口列表
});
其中的timestamp、nonceStr、signature都需要access_token,access_token通过appId和appSecret获得,之后获取签名即可。
  • 通过ready接口处理成功验证,这里是调用了微信接口后,继续的操作,可以不写
  • 通过error接口处理失败验证

     当在公众号内点击VR遥控器时,进行了一系列的验证工作流程,将必须的数据,如appid、deviceid、projectid等都存储在客户端的本地存储内。首先进行是否需要登录的判断,如果不需要登录,则不进行jssdk的配置,只进入网页的一般调试模式,进行除微信接口调用外的其他部分调试,如果需要登录,则判断会话存储中的clear_session是否存在,如果存在,则与后台交互,获取签名值,进而进行JS-SDK的配置;如果不存在,则需要向后台请求获取此值,对后台传回的值进行判断,如果是空的,则说明此用户未曾关注过公众号,则展示公众号的二维码,提醒关注。如果非空,则将用户的uesrid和微信号的openid保存在客户端的本地存储中。接着判断是否扫过VR视频的二维码,如果扫过,则将相关信息保存在客户端本地存储中,此时已经有了clear_session的值,继续有此值后应做操作即可,如果未曾扫过,则记录,并且将最初赋的初始值保存,和上述后续操作一致。具体流程如下图所示:

手机遥控器在微信端的处理_第1张图片



你可能感兴趣的:(手机遥控器在微信端的处理)