赞
踩
提前多熟悉阿里往年的面试题肯定是对面试有很大的帮助的,但是作为技术性职业,手里有实打实的技术才是你面对面试官最有用的利器,这是从内在散发出来的自信。
备战阿里时我花的最多的时间就是在学习技术上,占了我所有学习计划中的百分之70,这是一些我学习期间觉得还是很不错的一些学习笔记
我为什么要写这篇文章呢,其实我觉得学习是不能停下脚步的,在网络上和大家一起分享,一起讨论,不单单可以遇到更多一样的人,还可以扩大自己的眼界,学习到更多的技术,我还会在csdn、博客、掘金等网站上分享技术,这也是一种学习的方法。
今天就分享到这里了,谢谢大家的关注,以后会分享更多的干货给大家!
注意低版本订阅消息api必须在点击事件中触发,一般可做成显示一个按钮,友好的提示用户,然后再让用户点击按钮去手动触发订阅。
我这里就随便找了个页面在一个点击事件上添加了授权弹窗,不要纠结命名,页面是前端做的(疯狂甩锅ing)。
事件定义
微信开发者工具中的效果
真机效果
我这儿是集成订阅消息推送到已有的系统消息中,通过配置是否发送订阅消息进行分发,具体实现各工程不一样,我这儿就不展示了。
引入第三方sdk,我们就只需要封装好消息发送的核心代码,微信相关的token及其他信息的维护就交给sdk,我们不用关注(但是原理要知道)。
sdk的作者:GitHub
com.github.binarywang
weixin-java-miniapp
4.1.0
import cn.binarywang.wx.miniapp.api.WxMaService; import cn.binarywang.wx.miniapp.api.impl.WxMaServiceImpl; import cn.binarywang.wx.miniapp.bean.WxMaSubscribeMessage; import cn.binarywang.wx.miniapp.config.impl.WxMaDefaultConfigImpl; import com.coyee.core.log.Logger; import org.springframework.stereotype.Component; import java.util.ArrayList; @Component public class WeChatMessageHelperTest { private static WxMaService wxMaService = new WxMaServiceImpl(); /** * 发送小程序订阅消息 * @param appletsSubType 小程序类型(developer为开发版、trial为体验版、formal为正式版) * @param appSubTempId 订阅消息模板id * @param appSubPagePath 跳转小程序地址 * @param appletsAppid 小程序appId * @param appletsSecret 小程序secret * @param appletsSubToken 小程序token * @param appletsSubAesKey 小程序EncodingAESKey * @param appletsSubDataFormat 数据格式 * @param wxMaSubMsgList 消息列表 * @param userIds 接收用户id * @return void * @version V1.0 * modify history */ public static void sendWechatAppSubMessage(String appletsSubType, String appSubTempId, String appSubPagePath, String appletsAppid, String appletsSecret, String appletsSubToken, String appletsSubAesKey, String appletsSubDataFormat, ArrayList<WxMaSubscribeMessage.MsgData> wxMaSubMsgList, String... userIds) throws Exception { /* // wxMaSubMsgList组装示例,在业务里组装好,再调用系统消息发送工具,系统消息判断是否需要发送小程序订阅消息进行分发,此处不做展示 ArrayList<WxMaSubscribeMessage.MsgData> wxMaSubscribeData = new ArrayList<>(); WxMaSubscribeMessage.MsgData characterString1 = new WxMaSubscribeMessage.MsgData(); characterString1.setName("character_string1"); characterString1.setValue("DR15325419846198615651"); wxMaSubscribeData.add(characterString1); WxMaSubscribeMessage.MsgData thing3 = new WxMaSubscribeMessage.MsgData(); thing3.setName("thing3"); thing3.setValue("请XXXXXXXX"); wxMaSubscribeData.add(thing3); WxMaSubscribeMessage.MsgData time5 = new WxMaSubscribeMessage.MsgData(); time5.setName("time5"); time5.setValue(DateUtil.format(new Date(),DateUtil.DATE_TIME_FORMAT)); wxMaSubscribeData.add(time5); */ WxMaDefaultConfigImpl config = new WxMaDefaultConfigImpl(); // 小程序appId config.setAppid(appletsAppid); // 小程序secret config.setSecret(appletsSecret); // 小程序token config.setToken(appletsSubToken); // 小程序EncodingAESKey config.setAesKey(appletsSubAesKey); // 数据格式 config.setMsgDataFormat(appletsSubDataFormat); wxMaService.setWxMaConfig(config); for (String userId : userIds) { // TODO:根据用户id获取OpenId,测试时写死 WxMaSubscribeMessage subscribeMessage = new WxMaSubscribeMessage(); // 要推送的用户openid subscribeMessage.setToUser("openId"); // 小程序类型(developer为开发版、trial为体验版、formal为正式版),默认为formal(正式版) subscribeMessage.setMiniprogramState(appletsSubType); // 订阅消息模板id subscribeMessage.setTemplateId(appSubTempId); // 跳转小程序地址 subscribeMessage.setPage(appSubPagePath); // 消息列表(组装示例请看方法开始注释部分) subscribeMessage.setData(wxMaSubMsgList); try { // 发送订阅消息 wxMaService.getMsgService().sendSubscribeMsg(subscribeMessage); } catch (Exception e) { Logger.error("微信小程序订阅消息推送失败,接收userId: " + userId, e); } } } }
订阅消息每个参数都有相关限制,具体以官网的为准:订阅消息参数值内容限制说明
小编利用空余时间整理了一份《MySQL性能调优手册》,初衷也很简单,就是希望能够帮助到大家,减轻大家的负担和节省时间。
关于这个,给大家看一份学习大纲(PDF)文件,每一个分支里面会有详细的介绍。
这里都是以图片形式展示介绍,如要下载原文件以及更多的性能调优笔记(MySQL+Tomcat+JVM)!
面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)收录**
赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。