App是用uniapp开发的,打包为apk,上传到安卓平板中使用。客户要求登录页面实现微信扫描登录,这一场景下有两个关键问题:
1、微信扫描登录后的回调地址是不可能回到App内页面的。
解决方案:不能直接用,就迂回解决。服务器上需要部署1个H5的应用。App的登录页面放一个WebView,指向这个H5应用里的扫描登录页面。回调地址也指向H5应用里的某个地址,该地址接收code参数和后台交互完成登录业务。
2、WebView和App的通讯问题。
2.1 App给WebView传参
通过WebView的src属性传递参数
2.2 WebView返回参数给App
这个要通过postMessage传递。例如上面场景,回调页面完成登录后调用uni.postMessage给App。App通过@message="MessageHandler"来挂接接收函数
其他问题自行看网上教案,上面两个核心问题是教案没有涉及的。
很多同学好奇前端页面是怎么探知手机扫描状态的?窗户纸一捅就破:定时任务。打开微信网页版,打开浏览器控制台,自然能看到。