iOS Android SDK 行为区别

2019/04/29
  1. 在 "视频播放方向混乱问题" 问题上, 都出现了问题, 但问题原因并不相同, 且 iOS 已经通过 H5 tpl1 模板发包修复, Android 暂时只能靠 SDK 自身发版来修复这个问题
  2. SDK 返回的 device_widthdevice_height 不一致的问题, iOS 返回的是没有乘以 scale ratio 的值(即真实的设备像素宽), Android 返回的是已经乘以 ratio 之后的,假设 ratio 为 2, iOS 返回 320 640, 则 Android 会返回 640 1280,所以在处理点击坐标上报的逻辑中,会有类似以下针对 iOS 的处理逻辑:

    if (util.device().isiOS) {
      device_width = _data.device.device_width * _scale;
    device_height = _data.device.device_height * _scale;
    }
  3. Android 参数过长被截断的问题 - 在向 Native 发送消息时, WindVane 库本身, 会针对 iOS 使用iframe, 而在 Android 中使用 window.prompt, 初步怀疑是 Prompt 本身对入参有长度限制,导致传递的参数过长时,会在 Android 中被截断出现问题,所以在 install 传递 campaign 相关信息之前,会有类似以下针对 Android 的处理逻辑:

    if (util.device().isAndroid) {
        _params = util.getParams2Native(_params);
    }
  4. Android rv/endcard 模板在模板加载之后支持横竖屏互相旋转; 但 iOS 不支持, 模板加载后方向便会固定, 用户无法通过横竖放置设备使之旋转