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.其他功用
其他小功用还在构想中,我们有好的主意能够谈论区留言
我是纪先生,用输出倒逼输入而持续学习,持续分享技能系列文章,以及全网值得收藏好文,欢迎关注公众号,做一个持续生长的技能人。