记录app webview内嵌vue单页应用所遇到的坑

前言

背景是项目组做的是一个类似唱吧跟全民k歌的软件,所以偶尔会做一些关于k歌的运营活动,这时候就需要在app的webview中内嵌h5来快速开发一个个活动,由于一个活动有许多模块是可以抽出来当组件用的,如轮播banner、歌曲榜单列表、评论互动区、参赛歌单等等,所以就有了用vue开发一个基于单页应用的活动模板,用于日常通用的k歌活动这样的想法。

so在这个过程中无可避免的还是踩了一些坑,所以记录之,先大致说下用到的技术栈:vue全家桶(vue/vue-router/vuex)、sass、axios还有一套ui框架mint-ui,大致也就这些。下面来扒扒都遇到哪些坑。

1.vue-cli脚手架打包的项目部署到服务器上打开空白
首先可以确保路径是没问题的,vue-cli打包生产环境直接修改config目录下的index文件即可。将assetsPublicPath指向你所要放置的服务器目录,并用最后一个文件夹名作为你的项目名。如 http://baidu.com/app/events/my_activity。 那路径没问题的话。问题出在哪里呢?经过排查,是vue-router中将mode设置为'history'的缘故。由于一开始以hash模式的url是带'#'号的,本来想着让url好看点,所以用了history模式。虽然在本地调试的时候没问题,但是不部署的话还是需要后台进行相关配置的。这里百度一大堆,不赘述了,随便贴个地址,看这里

2.webview上自带的坑
讲真的这个只能找你们移动开发的同事。比如我这边遇到的是H5页面内嵌的时候上拉下拉会出现回弹的效果,这是他们加上的,这个难免会对h5造成一些手势冲突。比如我只是想滑动底部的时间选择器来选时间,但是页面不受控制会自动上弹。还有就是定位在中部或底部的输入框,理应在弹出软键盘时自动将键盘顶上去的,这个也应该由移动端开发那边来做相关设置。

3.单页应用不重载页面导致无法调用IOS的某些回调函数
这个是真的坑。在浏览器上跑都好好的,内嵌进app的时候发现ios打开页面后一直有一朵小菊花在loading,尽管数据已经加载完成了。切换页面也一样,除非刷新页面。那问题来了,谁的锅?又是经过一系列排查,发现这个是单页应用跟移动端那边开发的控件相互作用引起的坑。(关我毛事?)那个loading控件是移动端那边用来判断webview加载情况的,在网络请求跟数据请求时都会调用打开这个控件,然而悲剧的是关闭这个控件也就是WebviewDidFinishLoad函数却必须是页面有进行重载才会发起调用的,也就是说loading你是开了,但是我单页应用怎么来都是在一个页面上操作,自然不会重载,所以也就导致了那朵小菊花一直在转,这也是为什么强制刷新的话可以关闭掉loading控件的原因。这个嘛安卓那边不会有问题,所以应该是ios开发那边的问题,就算loading也应该有个时长可以关闭,或者可以写个接口通过webview的形式让前端去手动调用关闭loading控件,都是可以的。

4.es6对于一些老旧的安卓机型和浏览器的兼容问题
这个一开始还是比较头痛的,毕竟是上了线才发现的问题,陆陆续续在后台收到一些安卓机的反馈,打开活动页面一片空白。看了下大多是安卓4.4.2还有一些4.4以下的安卓机型。这尼玛vuejs不是兼容到安卓4.4吗?所以一开始以为是axios跟mint-ui的问题,但后面发现其实不是。主要原因是对es6兼容不够到位,虽然vue-cli引入了babel对js语法进行降级,但是还是有些老旧的机型会发生各种各样的问题,这里需要引入一个叫babel-polyfill的包。所以你只需只在你引入import vue之前 import babel-polyfill进来就可以了,主要是为了让es6对个别机型做到兼容。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,835评论 4 364
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,598评论 1 295
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,569评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,159评论 0 213
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,533评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,710评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,923评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,674评论 0 203
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,421评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,622评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,115评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,428评论 2 254
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,114评论 3 238
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,097评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,875评论 0 197
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,753评论 2 276
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,649评论 2 271

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 170,571评论 25 707
  • 说道明星我们都会想到每天有无数通告各不停地在天上飞奔波于各大城市中,在台后付出所有在台上呈现成果的颜值很高的人,我...
    PengZhihui阅读 219评论 0 2
  • 明天(2月4日),进入一年中第一个节气立春, 节气如竹节,先郁而后通,节气日耗人精气重,智慧的古人运用并流传了艾灸...
    专业艾灸阅读 202评论 0 0
  • 花叶总能相间荣,卷舒开合共盈盈。 出污不染任繁艳,映日更红无独生。 闻醉香波才过雨,看迷仙子有新晴。 好风吹处参差...
    雪窗_武立之阅读 523评论 0 3
  • 数据源:val list = listOf(1, 2, 3, 4, 5, 6) flatMap:遍历所有的元素,为...
    122604阅读 2,420评论 0 3