当前位置: 首页 > news >正文

Android Cordova 开发 - Cordova 解读初始化项目(index.html meta、Cordova.js、config.xml)

一、index.html meta

1、Content-Security-Policy
(1)基本介绍
<meta http-equiv="Content-Security-Policy" content="default-src 'self' data: https://ssl.gstatic.com 'unsafe-eval'; style-src 'self' 'unsafe-inline'; media-src *; img-src 'self' data: content:;">
  • 网页安全策略(CSP)的实质就是白名单,开发者明确告诉客户端,哪些外部资源可以加载和执行,哪些不可以

  • CSP 的主要目的是减少和报告 XSS 攻击,大大增加网页的安全性,攻击者即使发现了漏洞,也没法注入脚本

  • 有两种方法可以启动 CSP

  1. 通过 HTTP 头信息的 Content-Security-Policy 字段

  2. 通过网页的 meta 标签

(2)参数
参数名说明
default-src限制全局
script-src限制外部脚本
style-src限制样式表
img-src限制图像
media-src限制媒体文件(音视频)
font-src限制字体文件
object-src限制插件(如 Flash)
child-src限制框架
frame-ancestors限制嵌入的外部资源(如 frame、iframe、embed、applet 标签)
connect-src限制 HTTP 连接(通过 XHR、WebSockets、EventSource 等)
worker-src限制 worker 脚本
manifest-src限制 manifest 文件
参数值示例说明
*img-src *允许任意地址的 URL,但不包括 blob、filesystem、schemes
‘none’object-src ‘none’所有地址的资源都不允许加载
‘self’script-src ‘self’同源策略,即允许同域名同端口下,同协议下的请求
data:img-src ‘self’ data:允许通过 data 来请求资源(如用 Base64 编码过的图片)
domain.example.comimg-src domain.example.com允许特定的域名请求资源
*.example.comimg-src *.example.com允许从 example.com 下的任意子域名加载资源
https://cdn.comimg-src https://cdn.com仅仅允许通过 HTTPS 协议来从指定域名下加载资源
https:img-src https:只允许通过 HTTPS 协议加载资源
‘unsafe-inline’script-src ‘unsafe-inline’允许行内代码执行
‘unsafe-eval’script-src ‘unsafe-eval’允许不安全的动态代码执行(如 JavaScript 的 eval 方法)
mediastream:media-src mediastream:允许媒体流 URI 作为内容来源
  • 注:多个选项值也可以并列,使用空格隔开
(3)实例
  • 这里举例引入 twitter-bootstrap 样式
<!DOCTYPE html>
<html><head><meta charset="utf-8"><!-- 注意的 style-src --><meta http-equiv="Content-Security-Policy" content="default-src 'self' data: https://ssl.gstatic.com 'unsafe-eval'; style-src 'self' 'unsafe-inline' cdn.bootcdn.net; media-src *; img-src 'self' data: content:;"><meta name="format-detection" content="telephone=no"><meta name="msapplication-tap-highlight" content="no"><meta name="viewport" content="initial-scale=1, width=device-width, viewport-fit=cover"><meta name="color-scheme" content="light dark"><link rel="stylesheet" href="css/index.css"><!-- 引入 twitter-bootstrap 样式--><link rel="stylesheet" href="https://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/5.2.2/css/bootstrap.css"><title>Hello World</title></head><body><div class="app"><h1>Hello World</h1><div id="deviceready" class="blink"><p class="event listening">Connecting to Device</p><p class="event received">Device is Ready</p><!-- 使用 twitter-bootstrap 样式定义一个按钮--><Button class="btn btn-success">成功样式的按钮</Button></div></div><script src="cordova.js"></script><script src="js/index.js"></script></body>
</html>
  • 注:如果同时设置某个单项设置(如 style-src)和 default-src,前者会覆盖后者,即样式表会采用 style-src 的值,其他资源则依然采用 default-src 的值
2、format-detection
(1)基本介绍
<meta name="format-detection" content="telephone=no">
  • 格式检测
(2)参数
参数说明
telephone设置是否自动将数字转换为拨号链接
telephone=no:禁止把数字转化为拨号链接
telephone=yes:允许把数字转化为拨号链接,默认开启
email告诉设备不识别邮箱,点击之后不自动发送
email=no:禁止作为邮箱地址
email=yes:把文字默认为邮箱地址,默认开启
adressadress=no:禁止跳转至地图
adress=yes:开启点击地址直接跳转至地图的功能,默认开启
3、msapplication-tap-highlight
(1)基本介绍
<meta name="msapplication-tap-highlight" content="no">
  • Windows 上的触碰高亮
4、viewport
(1)基本介绍
<meta name="viewport" content="initial-scale=1, width=device-width, viewport-fit=cover">
  • 视口,是用户网页的可视区域
设备浏览器默认视口大小
iPhone980
iPad980
Android Samsung980
Android HTC980
Chrome980
Opera Presto980
BlackBerry1024
IE1024
(2)参数
参数说明
initial-scale初始缩放比例,即当页面第一次加载时的缩放比例
width控制视口大小,一般为了自适应设置为 device-width(设备宽度)
maximum-scale允许最大的缩放程度,是一个浮点值
minimum-scale允许最小的缩放程度,是一个浮点值
user-scalable是否允许用户进行缩放,值为 yes 或 no
viewport-fit=cover解决 iPhoneX tabbar 底部遮挡问题(使页面充满整个屏幕)
5、color-scheme
(1)基本介绍
<meta name="color-scheme" content="light dark">
  • 使网页支持多种模式(高亮模式、暗黑模式),当用户的系统主题更改后,网页演示随之更改
(2)源码解析
  • index.css,针对不同模式,可以写不同样式
body {/* 默认高亮模式 */background-image:linear-gradient(to bottom, #A7A7A7 0%, #E4E4E4 51%);
}@media screen and (prefers-color-scheme: dark) {body {background-image:linear-gradient(to bottom, #585858 0%, #1B1B1B 51%);}
}

二、Cordova.js

<script src="cordova.js"></script>
  • 在【项目目录】/www/index.html 中引入的 cordova.js 不是在当前目录下的,而是在构建之后的目录下的

  • 以 Browser 平台为例,观察 【项目目录】/platform/browser/www 目录,该目录中有 cordova.js

  • 注:不同平台下的 cordova.js 不同


三、config.xml

  • 项目目录下的 config.xml 是 Cordova 项目的主配置文件

  • 进行项目构建后,该文件会被复制到对应平台的子目录下

平台对应 config.xml
Androidapp/platform/android/res/xml/config.xml
iOSapp/platform/ios/AppName/config.xml
Browserapp/platform/browser/config.xml

相关文章:

  • AndroidAutomotive模块介绍(四)VehicleHal介绍
  • Pytorch图像数据转为Tensor张量
  • 大厂面试:MySQL篇
  • create_function()漏洞利用
  • centos stream 10 修改 metric
  • LSTM-GAN生成数据技术
  • 4. 继承基类实现浏览器_Chrome
  • 6.1.多级缓存架构
  • 【Axure高保真原型】动态折线图
  • MongoDB Ubuntu 安装
  • 智能文档解析系统架构师角色定义
  • 智驭未来:NVIDIA自动驾驶安全白皮书与实验室创新实践深度解析
  • Axure按钮设计分享:打造高效交互体验的六大按钮类型
  • Anomize: Better Open Vocabulary Video Anomaly Detection
  • 3.第三章:数据治理的战略价值
  • 初识Redis · 持久化
  • 配置 Nginx 的 HTTPS
  • 分布式理论和事务
  • Python常用的第三方模块之【jieba库】支持三种分词模式:精确模式、全模式和搜索引擎模式(提高召回率)
  • 从Nacos derby RCE学习derby数据库的利用
  • 云南蒙自:一汪南湖见证近代开埠史与西南联大的弦歌不绝
  • 时隔七年,上合组织国家电影节再度在中国举办
  • 网上销售假冒片仔癀和安宫牛黄丸,两人被判刑
  • 港澳航天员最早2026年飞天
  • 外交部:制裁在涉港问题上表现恶劣的美方人士是对等反制
  • 哈萨克斯坦一名副市长遭枪击