如何配置科尔多瓦 - 安卓4.0与白名单 [英] How to configure Cordova-android 4.0 with white-list

查看:171
本文介绍了如何配置科尔多瓦 - 安卓4.0与白名单的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

终于搞定Android的stuido与科尔多瓦,Android 4.0的工作,但我看书上说,我们必须安装插件的白名单,但我不知道如何来配置此插件与科尔多瓦,Android 4.0的工作。我得到的错误messasges如下

  04-13 16:30:31.291 856-856 / com.vs.VSMF W / Web控制台:未找到内容 - 安全 - 政策meta标签。请使用科尔多瓦 - 插件白名单的插件时,添加一个。在文件:///android_asset/www/plugins/cordova-plugin-whitelist/whitelist.js:25
04-13 16:30:41.290 856-856 / com.vs.VSMF D / SystemWebChromeClient:文件:///android_asset/www/plugins/cordova-plugin-whitelist/whitelist.js:第25行:没有内容安全 - 政策meta标签中。请使用科尔多瓦 - 插件白名单的插件时,添加一个。
 

这似乎是有点问题configure.xml

 < XML版本=1.0编码=UTF-8&GT?;


<小部件的xmlns =htt​​p://www.w3.org/ns/widgets
    的xmlns:缺口=htt​​p://phonegap.com/ns/1.0
    的id =com.vs.VSMF
    版本=1.0.0>

<名称>&VSMF LT; /名称>

<描述>
    VSMF项目模板。
< /描述>

<作者HREF =电子邮件=dong_dh@hotmail.com>
    华东
< /笔者>

<! - 
    在这里启用单独的API的权限。
    设备的许可是必需的deviceready事件。
 - >
<功能名称=htt​​p://api.phonegap.com/1.0/device/>

<! - 
    如果你不希望任何权限被添加到您的应用程序,添加
    下面的标签到你的config.xml文件;您仍然可以在INTERNET
    允许您的应用程序,这PhoneGap的需要。
 - >
< preference名=权限的价值=无​​/>


< preference名=方向值=默认/>
< preference名=目标设备值=万能/>
< preference名=全屏值=真/>
< preference名=disallowOverscroll值=真/>
< preference名=webviewbounce值=FALSE/>
< preference NAME =prerendered图标值=真/>
< preference名=留合的WebView值=FALSE/>
< preference名=IOS-statusbarstyle值=黑色不透明/>
< preference名称=检测数据类型值=真/>
< preference名=退出上挂起值=FALSE/>
< preference名=显示,启动画面微调值=真/>
< preference NAME =自动隐藏,闪屏的价值=FALSE/>
< preference名=AutoHideSplashScreen值=FALSE/>
< preference名=SplashScreenDelay值=60000/>
< preference名=禁用光标值=FALSE/>
< preference名=Android的的minSdkVersion值=17/>
< preference名=Android的INSTALLLOCATION值=自动/>
< preference名=iosExtraFilesystems值=库,库非同步,文档,文档,非同步,高速缓存,捆绑,根/>
< preference名=iosPersistentFileLocation值=库/>
< preference名=AndroidExtraFilesystems值=文件,文件,外部文件,SD卡,高速缓存,缓存外,根/>
< preference名=AndroidPersistentFileLocation值=内部/>

<差距:插件名称=org.apache.cordova.console/>
<差距:插件名称=org.apache.cordova.network信息/>

<! - 定义的应用程序图标为每个平台。 - >
<图标SRC =的icon.png/>
<图标SRC =RES /图标/安卓/图标-36 ldpi.png的差距:平台=Android的差距:密度=LDPI/>
<图标SRC =RES /图标/安卓/图标-48 mdpi.png的差距:平台=Android的差距:密度=MDPI/>
<图标SRC =RES /图标/安卓/图标-72-hdpi.png的差距:平台=Android的差距:密度=华电国际/>
<图标SRC =RES /图标/安卓/图标-96 xhdpi.png的差距:平台=Android的差距:密度=xhdpi/>
<图标SRC =RES /图标/黑莓/图标 -  80.png的差距:平台=黑莓/>
<图标SRC =RES /图标/黑莓/图标 -  80.png的差距:平台=黑莓的差距:状态=悬停/>
<图标SRC =RES /图标/ IOS /图标 -  57.png的差距:平台=IOSWIDTH =57高度=57/>
<图标SRC =RES /图标/ IOS /图标 -  72.png的差距:平台=IOSWIDTH =72高度=72/>
<图标SRC =RES /图标/ IOS /图标57-2x.png的差距:平台=IOSWIDTH =114HEIGHT =114/>
<图标SRC =RES /图标/ IOS /图标72-2x.png的差距:平台=IOSWIDTH =144HEIGHT =144/>
<图标SRC =RES /图标/的webOS /图标 -  64.png的差距:平台=webOS的/>
<图标SRC =RES /图标/ Windows的手机/图标48.png的差距:平台=winphone/>
<图标SRC =RES /图标/ Windows的手机/图标173.png的差距:平台=winphone的差距:角色=背景/>

<! - 定义应用程序启动屏幕为每个平台。 - >
<差距:飞溅SRC =RES /屏幕/安卓/屏幕LDPI-portrait.png的差距:平台=Android的差距:密度=LDPI/>
<差距:飞溅SRC =RES /屏幕/安卓/屏幕MDPI-portrait.png的差距:平台=Android的差距:密度=MDPI/>
<差距:飞溅SRC =RES /屏幕/安卓/屏幕HDPI-portrait.png的差距:平台=Android的差距:密度=华电国际/>
<差距:飞溅SRC =RES /屏幕/安卓/屏幕xhdpi-portrait.png的差距:平台=Android的差距:密度=xhdpi/>
<差距:飞溅SRC =RES /屏幕/黑莓/屏幕225.png的差距:平台=黑莓/>
<差距:飞溅SRC =RES /屏幕/ IOS /屏幕与iPhone portrait.png的差距:平台=IOSWIDTH =320HEIGHT =480/>
<差距:飞溅SRC =RES /屏幕/ IOS /屏幕iphone画像,2x.png的差距:平台=IOSWIDTH =640HEIGHT =960/>
<差距:飞溅SRC =RES /屏幕/ IOS /屏幕的iPad,portrait.png的差距:平台=IOSWIDTH =768HEIGHT =1024/>
<差距:飞溅SRC =RES /屏幕/ IOS /屏幕的iPad,landscape.png的差距:平台=IOSWIDTH =1024高度=768/>
<差距:飞溅SRC =RES /屏幕/窗口电话/屏幕portrait.jpg的差距:平台=winphone/>


<获得原产地=*的启动外部=YES/> <! - 让当地的网页 - >

< /部件>
 

解决方案

好像是抱怨缺少meta标签的内容安全性策略,确保你有一个在你的index.html

 <!DOCTYPE HTML>
< HTML>
  < HEAD>
    < META HTTP-当量=内容安全性政策的内容=默认-SRC *;风格-src的'自我''不安全的内联;脚本的src'自我''不安全的内联'不安全-EVAL >
    ...
 

请参阅:

<一个href="https://github.com/apache/cordova-plugin-whitelist#content-security-policy">https://github.com/apache/cordova-plugin-whitelist#content-security-policy

Finally get Android stuido to work with the cordova-android 4.0 but i read that we must install the whitelist plugin but i dont know how to configure this plugin to work with cordova-android 4.0. i got error messasges as below

04-13 16:30:31.291      856-856/com.vs.VSMF W/Web Console﹕ No Content-    Security-Policy meta tag found. Please add one when using the cordova-plugin-whitelist plugin. at file:///android_asset/www/plugins/cordova-plugin-whitelist/whitelist.js:25
04-13 16:30:41.290      856-856/com.vs.VSMF D/SystemWebChromeClient﹕ file:///android_asset/www/plugins/cordova-plugin-whitelist/whitelist.js: Line 25 : No Content-Security-Policy meta tag found. Please add one when using the cordova-plugin-whitelist plugin.

It seems to be something wrong with the configure.xml

<?xml version="1.0" encoding="UTF-8"?>


<widget xmlns     = "http://www.w3.org/ns/widgets"
    xmlns:gap = "http://phonegap.com/ns/1.0"
    id        = "com.vs.VSMF"
    version   = "1.0.0">

<name>VSMF</name>

<description>
    VSMF project template.
</description>

<author href="" email="dong_dh@hotmail.com">
    Hua Dong
</author>

<!--
    Enable individual API permissions here.
    The "device" permission is required for the 'deviceready' event.
-->
<feature name="http://api.phonegap.com/1.0/device" />

<!--
    If you do not want any permissions to be added to your app, add the
    following tag to your config.xml; you will still have the INTERNET
    permission on your app, which PhoneGap requires.
-->
<preference name="permissions"                value="none"/>


<preference name="orientation"                value="default" />    
<preference name="target-device"              value="universal" />    
<preference name="fullscreen"                 value="true" />          
<preference name="disallowOverscroll"         value="true" />
<preference name="webviewbounce"              value="false" />        
<preference name="prerendered-icon"           value="true" />          
<preference name="stay-in-webview"            value="false" />         
<preference name="ios-statusbarstyle"         value="black-opaque" />   
<preference name="detect-data-types"          value="true" />           
<preference name="exit-on-suspend"            value="false" />          
<preference name="show-splash-screen-spinner" value="true" />          
<preference name="auto-hide-splash-screen"    value="false" />           
<preference name="AutoHideSplashScreen" value="false" />
<preference name="SplashScreenDelay"          value="60000" />
<preference name="disable-cursor"             value="false" />         
<preference name="android-minSdkVersion"      value="17" />              
<preference name="android-installLocation"    value="auto" />          
<preference name="iosExtraFilesystems" value="library,library     nosync,documents,documents-nosync,cache,bundle,root" />
<preference name="iosPersistentFileLocation" value="Library" />
<preference name="AndroidExtraFilesystems" value="files,files-external,documents,sdcard,cache,cache-external,root" />
<preference name="AndroidPersistentFileLocation" value="Internal" />

<gap:plugin name="org.apache.cordova.console" />
<gap:plugin name="org.apache.cordova.network-information" />

<!-- Define app icon for each platform. -->
<icon src="icon.png" />
<icon src="res/icon/android/icon-36-ldpi.png"   gap:platform="android"    gap:density="ldpi" />
<icon src="res/icon/android/icon-48-mdpi.png"   gap:platform="android"    gap:density="mdpi" />
<icon src="res/icon/android/icon-72-hdpi.png"   gap:platform="android"    gap:density="hdpi" />
<icon src="res/icon/android/icon-96-xhdpi.png"  gap:platform="android"    gap:density="xhdpi" />
<icon src="res/icon/blackberry/icon-80.png"     gap:platform="blackberry" />
<icon src="res/icon/blackberry/icon-80.png"     gap:platform="blackberry" gap:state="hover"/>
<icon src="res/icon/ios/icon-57.png"            gap:platform="ios"        width="57" height="57" />
<icon src="res/icon/ios/icon-72.png"            gap:platform="ios"        width="72" height="72" />
<icon src="res/icon/ios/icon-57-2x.png"         gap:platform="ios"        width="114" height="114" />
<icon src="res/icon/ios/icon-72-2x.png"         gap:platform="ios"        width="144" height="144" />
<icon src="res/icon/webos/icon-64.png"          gap:platform="webos" />
<icon src="res/icon/windows-phone/icon-48.png"  gap:platform="winphone" />
<icon src="res/icon/windows-phone/icon-173.png" gap:platform="winphone"   gap:role="background" />

<!-- Define app splash screen for each platform. -->
<gap:splash src="res/screen/android/screen-ldpi-portrait.png"  gap:platform="android" gap:density="ldpi" />
<gap:splash src="res/screen/android/screen-mdpi-portrait.png"  gap:platform="android" gap:density="mdpi" />
<gap:splash src="res/screen/android/screen-hdpi-portrait.png"  gap:platform="android" gap:density="hdpi" />
<gap:splash src="res/screen/android/screen-xhdpi-portrait.png" gap:platform="android" gap:density="xhdpi" />
<gap:splash src="res/screen/blackberry/screen-225.png"         gap:platform="blackberry" />
<gap:splash src="res/screen/ios/screen-iphone-portrait.png"    gap:platform="ios"     width="320" height="480" />
<gap:splash src="res/screen/ios/screen-iphone-portrait-2x.png" gap:platform="ios"     width="640" height="960" />
<gap:splash src="res/screen/ios/screen-ipad-portrait.png"      gap:platform="ios"     width="768" height="1024" />
<gap:splash src="res/screen/ios/screen-ipad-landscape.png"     gap:platform="ios"     width="1024" height="768" />
<gap:splash src="res/screen/windows-phone/screen-portrait.jpg" gap:platform="winphone" />


<access origin="*" launch-external="yes"/> <!-- allow local pages -->

</widget>

解决方案

Seems to be complaining about the lack of meta tag for Content-Security-Policy, make sure you have one in your index.html

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Security-Policy" content="default-src *; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' 'unsafe-eval'">
    ...

See:

https://github.com/apache/cordova-plugin-whitelist#content-security-policy

这篇关于如何配置科尔多瓦 - 安卓4.0与白名单的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆