前言

最近在做hw项目,刚好又被一些以前踩过的坑,又坑了一次,为了下次不忘记,特地总结一下这些年做移动端遇到的相关知识点
希望能帮助到有缘人,快一年没更新了, 😁😁😁

本文主要内容

  • 移动端适配方案,从原理到适配方案的整体思路
  • 移动端和APP交互具体流程明细,包含拦截器方式采坑记录
  • 调试方法(包括真机调试安卓和ios,window如何调试ios真机等)
  • 移动端兼容性问题(这个后续补上)

移动端适配方案

下面是图片,想要复制的点原文地址查看

rem适配方案详解(喜欢的自己看)

vw适配方案详解(喜欢的自己看)

总结

rem我也用过,感觉不太适应现在了,最近的项目我都开始向vw迁移了,我们的设计稿都是375,然后代码里面写px,通过这个插件自动转换成 vw

移动端和APP交互具体流程明细

下面是图片,想要复制的点原文地址查看

坑点

拦截式方式的一些坑爹行为

因为我们公司都是需要兼容低版本的安卓,所以用的是拦截式的实现,当客户端回调我们webview的方法的时候,安卓和ios的入参是有区别的:
  • 1.我们在安卓环境下会在回调的参数里面收到的是一个JSON字符串,我们需要调用JSON.parse 来转换一下;
  • 2.我们在IOS环境下会在回调的参数里面收到的是一个对象,不需要调用JSON.parse 来解析!!
  • 3.一定要让客户端大哥保证,只做一次整体的JSON 转换字符串,如果做多次,会导致我们JSON解析报错,具体解析报错如下所示;
  • 比如说我现在和客户端大哥约定的格式是 {status:1, data:{}}, status 为1表示调用成功,0表示调用失败,data里面放的是客户端给我们的参数;
  • 我碰到的情况是 客户端大哥先在data这层做了一次JSON.stringify, 然后在最后对整个一次JSON.stringify 相当于做了两次;
  • 这个时候就会触发下图的问题,原因是经过webview的调用之后,会少一个反斜扛,这个原因我还没具体深究,懂的大哥可以带我;
  • 解决方法就是只做一次整体的JSON.stringify 就不会有问题。

    1. 还有比如说调用客户端打开一个新webview的方法,这种一般都需要传一个链接给他们,然后链接需要调用encodeURIComponent方法把编码一下,再给他们。

注入式的,没使用过,等待有缘人带我飞

历史的调试方法

下面是图片,想要复制的点原文地址查看
  • 个人推荐的真机调试方式

下面是图片,想要复制的点原文地址查看

预留一个坑,移动端兼容问题,有空的时候来补一下

下班了,下次有空再来补一下这里咯

参考资料


qinyuanqiblog
20 声望3 粉丝

擅长摸鱼~