11月不是提了辆车嘛,价格还行,不到百万

租住的小区人多车位少,非固定车位都是先到先停,我到的时分正好有个车位,成果晚上就收到了12123的短信 说影响到别人了。我都懵了,停在小区碍着谁的事了,估计是有人恶作剧 就没理睬,

捣鼓一个小程序

成果到了晚上 楼下不断的按喇叭,就去瞅一眼 ,四目相对,说那是他的固定车位。一排全是非固定车位,就他这个不是,并且也没写车牌号,这也不能怪我啊。

多大点事,何须走官方渠道(吓人),作为程序员 ,天然有自己的流程,所以就有了自己的第一个小程序:个人帮手plus

起名字也挺苦恼的,本着这个小程序是集成自己常用的功用,让它成为自己的日子小帮手,

一周的时刻完成了两个小功用

  • 挪车码
  • 气候预报

捣鼓一个小程序

不得不说界面的款式太难调了,真苦楚

1. 挪车码

方便在停车的时分影响到别人,能够电话通知车主。

鉴于微信的强壮,运用微信的小程序码 是比较方便的。

运用界面:

捣鼓一个小程序

输入手机号,获取一个小程序码,能够这个码贴在车上,让别人扫码

运用微信扫码的时分,直接引发电话,如下图

捣鼓一个小程序

看这款式,他们说我这 css写的很后端, 所以前端相关就不说了。首要说下后端相关的功用

微信官方供给功用的API,一个是获取授权token,另一个是获取小程序码

有个坑爹的是,微信供给了API 可是不允许直接在小程序中调用,需求自己转一下,我不明白为什么有这种约束操作,想让我买个腾讯云服务器吗,没办法 我只能在阿里云买个服务器,写一个服务调用这两个接口。

  • 获取小程序的接口

token是有时效的,所以不必每次调用,存放到redis中

@GetMapping("/getQrCode/{phoneNum}")
  public String queryList(@PathVariable String phoneNum) throws Exception {
    String accessToken = this.getTokenFromRedis();
    if (StringUtils.isEmpty(accessToken)) {
      accessToken = this.getAccessToken();
     }
    if (StringUtils.isBlank(accessToken)) {
      throw new Exception("生成失败");
     }
    return getwxacodeunlimit(accessToken, phoneNum);
   }
  • 获取授权token

token_url: api.weixin.qq.com/cgi-bin/tok…

private synchronized String getAccessToken() throws Exception {
    JSONObject jsonObject = restTemplate.getForObject(TOKEN_URL, JSONObject.class);
    System.out.println(jsonObject.toJSONString());
    if (jsonObject.containsKey(FILED_ACCESS_TOKEN)) {
      String accessToken = jsonObject.getString(FILED_ACCESS_TOKEN);
      redisTemplate.opsForValue().set(REDIS_KEY_TOKEN, accessToken, jsonObject.getLongValue(FILED_EXPIRES_IN), TimeUnit.SECONDS);
      return accessToken;
     }
    throw new Exception("生成失败");
   }
  • 获取小程序码

QR_CODE_URL: api.weixin.qq.com/wxa/getwxac…

private String getwxacodeunlimit(String accessToken, String phoneNum) {
    String base64 = getQrCodeBase64FromRedis(phoneNum);
    if (StringUtils.isNotEmpty(base64)) {
      return base64;
     }
    Map<String, Object> input = new HashMap<>();
    input.put("page", "pages/phone/call");
    input.put("scene", phoneNum);
    input.put("check_path", false);
    input.put("env_version", "release");
    ResponseEntity<byte[]> responseEntity = restTemplate.postForEntity(QR_CODE_URL + accessToken, JSON.toJSONString(input), byte[].class);
    byte[] result = responseEntity.getBody();
    base64 = Base64.getEncoder().encodeToString(result);
    redisTemplate.opsForValue().set(REDIS_KEY_QRCODE + phoneNum, base64, 5, TimeUnit.DAYS);
    return base64;
   }

2.气候预报

手机内存不足,能卸载的app都悉数卸载了,包含气候app。可是偶尔看气候的需求仍是在的,气候不好的时分看看是否需求带伞。

开端的时分气候款式是这样的(我调了好久的)

捣鼓一个小程序

其间那些svg格局的气候图标,因为微信小程序中无法直接改动其色彩,只能默认黑色。还有一种方法就是读取svg文件 ,然后修改其间的色彩特点,然后在显现,可是总是有各种问题 就放弃了,直接选用网友的主张

捣鼓一个小程序

对接了 和风气候相关的API 获取气候信息。

  • 获取位置经纬度

这个是运用微信官方的定位方法wx.getFuzzyLocation(需求先申请才干运用)

getFuzzyLocation(){
 wx.getFuzzyLocation({
  type: 'wgs84',
  success:(res:any)=>{
   this.setData({
    position : true,
    });
   this.data.location = res.longitude+','+res.latitude;
   },
  });
},
  • 和风API获取气候信息

获取实时气候信息

getWeatherNow(){
 wx.request({
  url: 'https://devapi.qweather.com/v7/weather/now', 
  method: 'GET',
  data: {
   key: this.data.key,
   location: this.data.location,
   },
  success: (res:any) => {
   this.setData({
    weather_now: res.data.now
    });
   },
  });
},

还运用了有其他接口

当天的气候指数:devapi.qweather.com/v7/indices/…

24小时的气候: devapi.qweather.com/v7/weather/…

最近三天的气候:devapi.qweather.com/v7/weather/…

终究的作用如下:

捣鼓一个小程序

  • 运用和风气候的h5插件(运用web-view标签引进)

这种接入更好,无论是内容的丰富度,仍是款式的美观度,并且还不必自己去定位/调用API,很高兴总算不必自己调款式了

捣鼓一个小程序

高兴早了…….

微信不支持个人小程序运用web-view的方法引进第三方页面

捣鼓一个小程序

捣鼓一个小程序

3.其他功用

其他小功用还在构想中,我们有好的主意能够谈论区留言

我是纪先生,用输出倒逼输入而持续学习,持续分享技能系列文章,以及全网值得收藏好文,欢迎关注公众号,做一个持续生长的技能人。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。