背景:app各平台对隐私政策的监管越来越严格,app上线后,存在各种隐私协议的多次更新,每次更新都需要走发版流程,耗时耗力,为了解决这一问题,后端管理系统通过富文本 (模板)转成固定的h5链接,以供app端使用。不需要发版。

1 调研结果

android webview 不能直接加载pdf文件

  • 不建议pdf格式:
  • 如果显示pdf,条件是需要文件的存取权限,原理是:pfd下载转成图片
  • 原因是:首次启动app,会有隐私弹窗,如果进入隐私协议需要权限弹窗许可
  • 建议采取以下方式:
  • 加载h5,需要把显示内容转成h5,但是需要HTML元素中body元素 内容自动换行处理,排版中不用表格,见8.1效果
  • 加载富文本需要后台出接口,富文本转HTML也需前端处理
类目 系统权限 新增接口 前端优化h5格式 是否常见
pdf 需要 不常见
h5 需要 常见
富文本 需要 需要
协议样式 显示效果 是否需要适配
有表格 见 8.1 效果1 需要
没表格 见 8.2 效果2 不需要

2 APP隐私协议入口

  • 1 app首次启动,弹窗点击相关隐私协议内容
  • 2 我的-设置-隐私-相关隐私协议

3 android 不能正常显示表格解决方案

//显示链接的样式
<a style="word-break:break-all"></a>
//正确的(自适应宽度)代码如下:
<table  style="table-layout: fixed; width="100%""></table>
//body 加style样式,前提:表格中 不能有 width
<body style="word-break:break-all;table-layout: fixed; width="100%"></body>


4 加载PDF

  • 需要申请手机的存储权限
  • 原理是pdf转图片,再展示到界面,内存占用大

4.1直接使用第三方软件打开(包括浏览器打开和第三方软件打开)

跳转到浏览器,浏览器下载pdf,然后通过浏览器或第三方软件打开

4.2 用第三方库加载

Github上有一个Java开源项目 https://github.com/barteksc/AndroidPdfViewer ,
这个库的大致原理,是内置了一个PDF解析器,以流的方式将网络PDF从网上Down下来,然后再以流的方式将其还原成PDF展示出来(具体细节没关注)。亲测中,这个库每次进入webview页面都会解析加载一遍PDF,如果PDF过大,费时无缓存不说,最致命的问题乃是,
APK包体积会瞬间增大15M左右,

具体原因不明,估计应该是内置PDF解析器的问题

4.3 使用安卓自带的PdfRenderer类加载

如果要求支持的功能不是很多,用安卓提供的PdfRender就可以满足需求了。PdfRender加载多页的话可以配合ViewPager或者RecyclerView使用.需要注意的是使用PdfRender需要先将PDF文件下载到本地,是线程不安全的,并且API>=21才能使用。因为这种方式是将PDF下载到本地,于是就产生了新问题:占内存。如果是静态的PDF文件不大还好,但是如果是频繁加载网络PDF的需求,那就头疼了,这种方式需要做好定时清理删除PDF的工作,否则,GG。

5 加载word文档直接转换成的 html

第三方SDK 第三方名称 使用目的 收集个人信息 官方链接 第三方隐私政策
微信支付 深圳市腾讯计算机系统有限公司 帮助用户使用微信支付服务 设备标识信息、写入外部存 https://open.weixin.qq.com/ https://weixin.qq.com/cgi–bin/readtemplate?lang=zh_CN&t=weixin_agreement&s=privacybin/readtemplate?lang=zh_CN&t=weixin_agreement&s=privacy
支付宝 支付宝(中国)网络技术有限公司 帮助用户在应用内使用支付宝 设备标识信息、写入外部存储、、IMEI、IMSI、Android id、MAC、硬件序列号、ICCID、SSID、BSSID、传感器信息、网络类型、WIFI状态/参数/列表(安卓)、运营商信息(安卓)、操作系统、IP地址设备型号、系统属性(安卓)、系统设置(安卓) https://opendocs.alipay.com/open/54/104509/ https://opendocs.alipay.com/open/54/01g6qm

6 加载word文档直接转换成的 html,加自动换行样式

第三⽅SDK列表

微信支付 SDK

第三方名称:深圳市腾讯计算机系统有限公司

使用目的:帮助用户使用微信支付服务

收集个人信息:设备标识信息、写入外部存

官网链接:https://open.weixin.qq.com/

隐私政策:https://weixin.qq.com/cgi–bin/readtemplate?lang=zh_CN&t=weixin_agreement&s=privacybin/readtemplate?lang=zh_CN&t=weixin_agreement&s=privacy

7 加载富文本

8 最终效果

8.1 效果1

8.2 效果2

9 流水线命令发版

'versionCode'          : project.hasProperty('VERSION_CODE') ? Integer.parseInt(VERSION_CODE) : 7020280,
'versionName'          : project.hasProperty('VERSION_NAME') ? String.valueOf(VERSION_NAME)   : '7.2.28',

android 加载隐私协议策略相关推荐

  1. Android 加载本地图片(文件管理器中的图片墙)

    Android 加载本地图片(文件管理器中的图片墙) --关于图片墙的一些感悟与疑问,希望大家共同探讨. (By伊叶也) 图片显示及监听 1.图片显示:基本上就5种显示形式(如果同时嵌入5种形式,采用 ...

  2. android 漫画加载方案,Android加载长图的多种方案分享

    背景介绍 在某些特定场景下,我们需要考虑加载长图的需求,比如加载一幅<清明上河图>,这个好像有点过分了,那就加载1/2的<清明上河图>吧... 那TMD还不是一样道理. 言归正 ...

  3. 关于 android 加载 res 图片 out of memory 问题 解决 同样适用于 sd卡图片

    2019独角兽企业重金招聘Python工程师标准>>> 发现android 加载res图片如果过多也会崩溃 android 也是使用 Bitmap  bm = BitmapFacto ...

  4. Android加载大图片OOM异常解决

    Android加载大图片OOM异常解决 参考文章: (1)Android加载大图片OOM异常解决 (2)https://www.cnblogs.com/jevan/archive/2012/07/05 ...

  5. android如何添加gif,Android加载Gif和ImageView的通用解决方案:android-gif-drawable(1)...

     Android加载Gif和ImageView的通用解决方案:android-gif-drawable(1) Android自己的ImageView或者View不能直接加载运行Gif图片,如果要在 ...

  6. Android加载/处理超大图片神器!SubsamplingScaleImageView(subsampling-scale-image-view)【系列1】...

     Android加载/处理超大图片神器!SubsamplingScaleImageView(subsampling-scale-image-view)[系列1] Android在加载或者处理超大巨 ...

  7. android加载html

    今天写了一个小测试  android加载本地的一个html 首先main目录下新建一个assets 在android studio中新建目录时选中foder的assets 把html放入其中 在and ...

  8. Android手机内存图片读取,有效解决Android加载大图片内存溢出的问题

    今天在交流群里,有人问我他经常遇到加载图片时内存溢出的问题,遇到的情况还是在自己的测试机或者手机里没有问题,做好了, 到了客户手机里就内存溢出了.其实有时候不同的手机和不同的系统对内存的要求不一样,尤 ...

  9. Android加载大图片不OutOfMemoryError

    Android加载图片时,对于分辨率小,配置低的机子,很容易发生OutOfMemoryError.手机的内存比图片的大很多,怎么会这样? 在设置Android虚拟机的内存时: RAM:模拟器的内存空间 ...

最新文章

  1. Java和Android中一些常用的公共方法
  2. 《.NET应用架构设计:原则、模式与实践》新书博客--试读-持续更新
  3. 2020计算机顶级大会_2020年顶级远程调试工具
  4. 数组方法 包含es6
  5. 第一个 Web 程序
  6. AtCoder 杂题训练
  7. 为什么做的报表领导不满意,如何提升报表的价值?
  8. MATLAB批量读取图片,剪切,存储,放大
  9. 博弈论——选举/投票(voting)
  10. 2020第一本书《自私的基因》
  11. 中国研修网计算机培训心得,网络研修培训心得体会
  12. python extension c++ 扩展
  13. python正则判断邮箱_Python实现正则表达式匹配任意的邮箱方法
  14. microsoft edge 浏览器添加兼容网址
  15. 转载一个很经典的--C# Socket TCP和UDP报文及端口测试工具的开发(提供源码)
  16. 贷款市场报价利率(LPR)与贷款基准利率介绍
  17. numpy的文件存储 .npy .npz 文件
  18. TypeError:object of type 'type' has no len()的一种可能原因
  19. miniui的列数据渲染
  20. 安卓开发之Bitmap

热门文章

  1. quill富文本编辑器quill粘贴图片上传服务器
  2. DO447使用过滤器和插件转换器--使用过滤器处理变量
  3. ES elasticsearch 7.10安装部署
  4. 虚拟服务器要收费的吗,免费虚拟主机,就是真的免费吗?
  5. overflow属性详解
  6. 【转载】安卓默认系统图标样式的修改
  7. android vold 分析,vold流程分析
  8. Android7.0 Vold 进程
  9. 曲速未来 提醒:增加使用Delphi Packer来躲避恶意软件分类
  10. Spring Boot遇上jello