这个插件允许我们实现应用程序导航的白名单政策。 当我们创建新的Cordova项目时,默认情况下会安装并实施白名单插件。您可以打开 config.xml 文件,查看Cordova提供的 allow-intent 默认设置。
导航白名单
在下面的简单示例中,我们允许链接到一些外部URL。此代码位于 config.xml 中。默认情况下允许导航到 file:// 网址。
<allow-navigation href = "Http://example.com/*" />
星号符号 * 用于允许导航到多个值。在上面的示例中,我们允许导航到 example.com 的所有子域。同样可以应用于协议或前缀到主机。
<allow-navigation href = "*://*.example.com/*" />
意向白名单
还有 allow-intent 元素,用于指定允许打开系统的URL。 您可以在 config.xml 中看到Cordova已经允许我们使用大部分所需的链接。
网络请求白名单
当您查看 config.xml 文件中时,有< Access origin =“*"/> 元素。此元素允许通过Cordova钩子对我们的应用程序的所有网络请求。如果您只想允许特定请求,可以从 config.xml 中删除它,然后自行设置。
使用与前述实施例相同的原理。
<access origin = "http://example.com" />
这将允许来自 http://example.com 的所有网络请求。
内容安全策略
您可以在 index.HTML 中的 head 元素中查看应用程式目前的安全性政策
<meta http-equiv = "Content-Security-Policy" content = "default-src 'self' data: gap: https://ssl.gstatic.com 'unsafe-eval'; style-src 'self' 'unsafe-inline'; media-src *">
这是默认配置。如果您要允许来自相同原点和 example.com 的所有内容,您可以使用 -
<meta http-equiv = "Content-Security-Policy" content = "default-src 'self' foo.com">
您也可以允许所有内容,但将CSS和javascript限制为相同的来源。
<meta http-equiv = "Content-Security-Policy" content = "default-src *; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' 'unsafe-eval'">
由于这是初学者教程,我们建议使用默认的Cordova选项。一旦你熟悉Cordova,你可以尝试一些不同的值。