安卓访问钉钉H5项目显示内容空白,但有标题 |
您所在的位置:网站首页 › 钉钉app什么时候开发的 › 安卓访问钉钉H5项目显示内容空白,但有标题 |
注意:当前在vue2.0框架+node-15.4.1,本地运行的项目在微信、其他浏览器上运行都是正常显示,甚至是苹果在钉钉上访问都没问题,就唯独安卓在钉钉上访问,有标题,但页面内容为空…(本篇博客侧重点是为了记录解决问题的过程,如果最终没有解决你的问题,也希望勿喷~) 先贴上大致的项目目录结构 一、在网上查找相关的解决办法(尝试以下的方法都无效) 在webpack配置项rules中babel-loader添加resolve(‘config’) 二、根据项目执行顺序进行排查 在index.html中添加alert弹窗,发现弹窗正常执行。因为安卓在访问的时候明显是有页面标题显示,说明至少index.html是可访问的,在index.html添加vconsole插件,查看项目运行的元素(elements)、控制台(console)、网络请求(network)情况元素:#app的元素内是空的,说明并没有走到new Vue({}),或者说new Vue({})没有执行完就被阻塞了。 控制台:发现一个报错 script error,脚本执行错误。 网络:只有一个页面正常的socket连接请求。 弄清楚到底是没执行mainJS还是执行了被终止了最开始也是加了一个alert弹窗,发现没有弹出,以为是没执行,后面故意制造一个报错,值得高兴的是报错被打印了,那就是说明程序是运行被终止了,而且至少是运行了mainJS。 在mainJS上一个个注释引用的插件最终发现报错是从路由那边引起的,然后尝试将路由内的权限校验、meta配置等等注释,发现报错依然存在,索性直接将路由项只写了一个简单页面(就只有一个div标签,其他都是默认配置),发现安卓可以正常访问,这个时候大致可以判断是我原先要访问的页面(为了方便,后续称作A页面)内的问题,确保万无一失,把路由只配置原先访问的页面,发现不能正常访问,这就算确定是A页面出现的问题。 A页面一个个注释引用的插件确定了问题出在近期添加的一个扫码插件(html-qrcode) 尝试解决扫码插件的兼容性问题一开始将扫码插件的依赖也加入到babel-loader中,没有效果还出现一系列警告,script error报错仍存在 经过网上了解到,很多扫码插件,为了安全性,只允许本地或者带着https的域名访问,在本地运行项目的时候,在配置跨域(proxy)的地方添加https: ture,重新运行项目即可解决问题。 最后总结一开始觉得是因为内容为空的,再加上以为mainJS都没有执行,所以没有检查思路,只是一味的上网搜索相关解决方案,有了这次的经历之后,才明白自己的基础功还是太差了,缺乏冷静思考 因为这个项目是只在钉钉上运行,又加上一些其他的原因测试服务器不方便配置https服务,我考虑换了一款利用钉钉第三方sdk的扫码,是真的很方便。原文链接 cnpm install dingtalk-jsapi // 下载dingtalk-jsapi import * as dingtalk from 'dingtalk-jsapi'; // 局部引入 // 方法使用 dingtalk.ready(function () { dingtalk.biz.util.scan({ type: 'all', // type 为 all、qrCode、barCode,默认是all onSuccess: function (data) { //对返回的数据进行转换 }, onFail: function (err) { console.log(err) } }); }); |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |