1.公司最近开发了一款APP,是H5+Android混合模式开发的,将web移动端应用封装到了APP中。
2.完成之后,想要再将web移动端应用做成微信小程序,查看了微信小程序开发文档,发现开发微信小程序也是有一套特定的语言,我们不可能再用小程序来单独开发一套,于是我就想能不能像APP一样用微信小程序来封装web移动端应用。果然,微信小程序开发文档中也提供了跟Android的webview组件类似的web-view标签,该组件可以来加载我们的web项目,提供url即可。官方在这里做了一些限制和要求,详细用法参考官方文档:web-view
3.微信小程序项目创建略过。
4.因为现在个人账号已经不能配置(web-view)业务域名了,我这里只是做测试,所以暂且关闭了域名校验。
5.首先,在小程序初始页面中只需要一行代码,让小程序在启动的时候直接在微信浏览器中打开我们的web项目。
web-viewsrc"http://localhost:8080"/web-view6.src中的url是我本地web项目地址(使用localhost的话可能真机调试的时候会报错,最好是使用natapp域名穿透工具生成一个外网能够访问的临时域名,下面url中的地址都换一下),服务端初始化index页面为以下代码:
!DOCTYPEhtmlhtmllang"en"headmetacharset"UTF-8"title扫一扫/title/headscripttype"text/javascript"src"http://res.wx.qq.com/open/js/jweixin-1.4.0.js"/scriptscripttype"text/javascript"functionopenScanCode(){//是否微信环境if(!window.WeixinJSBridge||!WeixinJSBridge.invoke){console.log("非微信环境")}else{//是否小程序环境if(window.__wxjs_environment'miniprogram'){//跳转到指定小程序页面wx.miniProgram.navigateTo({url:'../sao/sao'});}else{//跳转到小程序指定页面console.log("非微信小程序环境")}}}/scriptbodydivalign"center"inputtype"button"value"扫一扫"οnclick"openScanCode()"style"width:600px;height:100px;font-size:50px"//div/body/html7.运行效果如下:
8.真机调试:使用手机微信打开,点击扫一扫按钮,会跳转到小程序端的sao页面。
9.sao.wxml页面代码:
!--pages/sao/sao.wxml--text正在跳转.../textweb-viewsrc"http://localhost:8080"/web-view10.sao.js代码:
Page({/***页面的初始数据*/data:{},/***生命周期函数--监听页面加载*/onLoad:function(options){//兼容ios微信无法立即调起扫一扫//setTimeout(function(){//调用扫一扫wx.scanCode({success:function(res){console.log(res)wx.redirectTo({url:'../succ/succ?result'+JSON.stringify(res)})},error:function(err){console.log('err');wx.redirectTo({url:'../index/index'})}})//},50)},})11.(这里的setTimeout延迟时间根据情况自行定义,因为我是用Android系统测的,无需延迟。)
12.此时就可以成功调用微信扫一扫功能了。接下来要把扫码结果返回给服务器端。
13.可以看到在回调函数里可以拿到扫码的结果res,我把结果传给了succ页面,succ.wxml页面代码:
!--pages/succ/succ.wxml--web-viewsrc"{{src}}"/web-view14.succ.js代码:
//pages/succ/succ.jsPage({/***页面的初始数据*/data:{},/***生命周期函数--监听页面加载*/onLoad:function(options){varthatthis;varparamJSON.parse(options.result)console.log(param)that.setData({src:"http://localhost:8080/success?charSet"+param.charSet+"result"+param.result});},})15.拿到传递过来的res结果,通过web-view调用服务器端success接口,并传递结果
importcom.mawbo.mybatis.form.Code;importorg.springframework.stereotype.Controller;importorg.springframework.web.bind.annotation.RequestMapping;@ControllerpublicclassPageController{@RequestMapping("/")publicStringindex(){return"index";}@RequestMapping("/success")publicStringsuccess(Codecode){System.out.println(code);return"success";}}16.Code是定义的扫码内容对象,根据自己情况定义。
importlombok.Data;@DatapublicclassCode{privateStringcharSet;privateStringerrMsg;privateStringrawData;privateStringresult;privateStringscanType;}17.至此,就完成了使用微信小程序访问web移动端项目,并实现了web端与小程序间的通信h5调用微信扫一扫功能。
18.本人是后端Java开发,对前端略知一二,如有不足,欢迎下方评论。
Javaweb移动端项目实现与微信小程序间通信测试移动端调用微信扫一扫功能-小程序能唤起微信扫一扫么-微信小程序扫一扫功能
浏览量:1327
时间:
来源:aaron_博
版权声明
即速应用倡导尊重与保护知识产权。如发现本站文章存在版权问题,烦请提供版权疑问、身份证明、版权证明、联系方式等发邮件至197452366@qq.com ,我们将及时处理。本站文章仅作分享交流用途,作者观点不等同于即速应用观点。用户与作者的任何交易与本站无关,请知悉。
最新资讯
-

即速应用,赋能企业玩转微信小程序智慧经营
作为国内领军的智慧商业经营服务商,即速应用始终秉承“让每个企业都拥有自己的智慧店铺”的愿景,持续赋能更多企业玩转智慧经营。即速应用旗下拥有“小程序搭建工具-即速应用”、“私域流量专家-即客云”等产品,帮助商家打通互联网全生态营销闭环。 -

即客云2.0重磅更新,让微信小程序运营更简单!
即客云作为一款基于企业微信的第三方工具,现从多维度提供超过30种功能,自上线以来,已服务多家企业,受到一致好评。近期,我们根据客户反馈和市场调研正式推出升级版 即客云2.0!更新了私域运营SOP,群日历功能,批量拓客,客户雷达,消息推送,个人欢迎语,帮助企业更好运用企业微信;同时提升了社群运营工作标准化,提升运营效率,帮助企业实现客户增长,玩转私域流量。 -

零代码 + AI 双轮驱动|即速应用解锁人工智能小程序开发新范式
无需代码、无需 AI 算法功底,普通人也能快速搭建智能小程序。即速应用将人工智能与零代码开发深度融合,推出 AI 智能生成能力,用户通过自然语言描述需求,AI 自动生成小程序页面、功能模块与后台配置,覆盖商城、预约、同城、社区团购等全场景。平台内置 AI 智能推荐、智能客服、用户画像分析等能力,一键对接微信生态,打通视频号、企业微信、短信跳转,帮企业快速落地 AI 应用,抢占智慧经营先机,让每家企业都拥有 AI 驱动的智慧店铺。










