微信公众平台分为服务号,订阅号,小程序和企业微信。
订阅号任何人都可以注册,但是功能受限,只能发发文章啥的;
服务号注册是必须要商户号,所以只能企业或组织注册,服务号功能完整,认证后的服务号的自定义菜单可以配置跳转网页地址,因此开发微信商城必须要服务号或订阅号的测试账号
小程序就不说了;
企业微信没用过,感觉是腾讯出的类似钉钉一样的办公服务。
把你的vue应用放到一个有域名的服务器中,在微信公众号平台配置自定义菜单的跳转网页地址:
我这里用的是自己的订阅号,会提示你认证,但是又只有服务号才能认证,所以现在的订阅号做不了网页了。必须要服务号才行,但是开发的时候还是可以用订阅号生成测试账号来开发网页的。
首先,不可能为了开发微信网页而去申请服务号,其次,订阅号虽然没有开放网页,但是依然可以通过测试号来进行开发,测试号开放了所有接口,所以比服务号还要方便:
然后,在服务号中开发时,我们是通过配置了地址的自定义菜单访问页面进行调试的,这个地址必须是外网能访问的域名,不能是ip地址,这就意味着每次我们写了代码,要想调试就必须打包,上传到服务器才行,这样显然不科学。
我们希望开发微信网页能和开发pc端页面一样,通过本地实时进行调试,这是完全可以实现的。原理是的时候,webpack-dev-sever会在电脑上启一个web服务,如果把你的电脑配置一个域名,能在外网中访问,那么在微信中就能访问到你的电脑上的东西了。这是就需要内网穿透,他就是用来把你的电脑暴露在外网中,我使用的是natapp,免费,跟着官网教程一步一步走就可以了,最终你会获得一个你指向你本机的域名,我们在微信中打开这个域名,就能访问到本地的项目了。
如果需要获取用户的微信信息,相当于要使用微信的获取用户信息的接口,因此需要在公众号平台接口权限中配置网页授权这么一个东西。登录公众平台,点击左下角接口权限,找到网页服务,找到网页授权,点击修改,输入域名,这里的域名就是你页面的顶级域名,和你之前配置自定义菜单时的域名一样就行。使用内网穿透本地开发的时候,域名就是穿透工具生成的你的本机域名。
配置好域名后就可以按照开发文档使用api了,微信授权是通过window.location.href并携带规定的参数,跳转到指定的链接,进行授权后在跳转回来,具体可以查看文档,贴下代码:
微信JS-SDK是微信公众平台 面向网页开发者提供的基于微信内的网页开发工具包。
通过使用微信JS-SDK,网页开发者可借助微信高效地使用拍照、选图、语音、位置等手机系统的能力,同时可以直接使用微信分享、扫一扫、卡券、支付等微信特有的能力,为微信用户提供更优质的网页体验。
其实就是微信提供的api,使用之前也是需要先配置一下:
配置js安全接口域名,和配置网页授权的域名一样,
按照文档的方法还需要下载一个文件到你的域名所在的根目录下,比较麻烦,推荐直接安装使用。
调用api之前需要先注册,注册需要一些参数,比如timestamp,nonceStr,signature这些,这些都是由后端给我们的,其中signature签名需要我们给后端传一个url过去,这个url可以是项目的顶级域名就行,比如是www.1234.com,这样www.1234.com/a,www.1234.com/a/b对应的页面不需注册也能直接调用jssdk,需要注意的是该url中不能有#,可以有?。贴下代码:
其他接口看文档调用就行。
项目中有个需求,需要计算用户当前位置和商店的距离,微信JSSDK提供了获取用户位置的接口,商店的经纬度坐标后端也提供了接口,但是如何计算两点的距离,是个问题。自己算最多也只能算个球面距离,并不准确,所以我猜想各种地图应该有这种基本的接口,果不其然,说在怎么在项目中使用:
登录网站,注册一下,登录后生成一个开发密钥(Key),后面会用到。先看看有些啥东西:
其他的就不说了,我需要的是在WebService API里面的距离计算,其实就是一个http请求接口,传规定的参数,返回距离给你,需要注意的是在项目中要设置代理,因为跨域了,官方文档写的很清楚了,贴下代码: