我正在构建Cordova 3.5.0应用程序.我使用grunt构建一个缩小的Web应用程序,然后我使用cordova CLI和cordova钩子来构建一个特定于平台的包.我使用了10多个不同的插件,一些Cordova官方插件和一些自定义插件.我想知道如何连接和缩小插件中的JS文件与我的其他第三方库.
执行后,cordova prepare我看到生成的cordova_plugins.js文件包含以下内容:
cordova.define('cordova/plugin_list', function(require, exports, module) {
module.exports = [
{
"file": "plugins/org.apache.cordova.globalization/www/GlobalizationError.js",
"id": "org.apache.cordova.globalization.GlobalizationError",
"clobbers": [
"window.GlobalizationError"
]
},
{
"file": "plugins/org.apache.cordova.globalization/www/globalization.js",
"id": "org.apache.cordova.globalization.globalization",
"clobbers": [
"navigator.globalization"
]
}
];
module.exports.metadata =
// TOP OF METADATA
{
"org.apache.cordova.globalization": "0.3.1"
}
// BOTTOM OF METADATA
});
Run Code Online (Sandbox Code Playgroud)
我知道如何使用这些插件缩小和生成单个文件,但不知道如何调整cordova构建过程以从单个文件但不同的包中获取所有clobbers.我的第一个想法是所有过程都必须在platforms/<platform>/assets/www文件夹内的AFTER_PREPARE步骤中完成
我在Mac Mountain Lion中使用Android Studio 0.2.6.当我第一次运行项目时,运行正常.
但是下一次,我有以下错误:
Internal error: (org.jdom.input.JDOMParseException) Error on line 1: Premature end of file.
org.jdom.input.JDOMParseException: Error on line 1: Premature end of file.
at org.jdom.input.SAXBuilder.build(SAXBuilder.java:533)
at org.jdom.input.SAXBuilder.build(SAXBuilder.java:946)
at com.intellij.openapi.util.JDOMUtil.loadDocument(JDOMUtil.java:377)
at com.intellij.openapi.util.JDOMUtil.loadDocument(JDOMUtil.java:355)
at org.jetbrains.jps.model.serialization.JpsLoaderBase.loadRootElement(JpsLoaderBase.java:69)
at org.jetbrains.jps.model.serialization.JpsLoaderBase.loadRootElement(JpsLoaderBase.java:40)
at org.jetbrains.jps.model.serialization.JpsProjectLoader.loadFromDirectory(JpsProjectLoader.java:127)
at org.jetbrains.jps.model.serialization.JpsProjectLoader.loadProject(JpsProjectLoader.java:99)
at org.jetbrains.jps.model.serialization.impl.JpsSerializationManagerImpl.loadModel(JpsSerializationManagerImpl.java:41)
at org.jetbrains.jps.cmdline.JpsModelLoaderImpl.loadModel(JpsModelLoaderImpl.java:45)
at org.jetbrains.jps.cmdline.BuildRunner.load(BuildRunner.java:71)
at org.jetbrains.jps.cmdline.BuildSession.runBuild(BuildSession.java:198)
at org.jetbrains.jps.cmdline.BuildSession.run(BuildSession.java:113)
at org.jetbrains.jps.cmdline.BuildMain$MyMessageHandler$1.run(BuildMain.java:128)
at org.jetbrains.jps.service.impl.SharedThreadPoolImpl$1.run(SharedThreadPoolImpl.java:41)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:439)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
at java.lang.Thread.run(Thread.java:680)
Caused by: org.xml.sax.SAXParseException: Premature end of file.
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:195)
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(ErrorHandlerWrapper.java:174)
at …Run Code Online (Sandbox Code Playgroud) 以下代码警告空字符串:
HTML:
<div id="test">test</div>
Run Code Online (Sandbox Code Playgroud)
CSS:
#test{
background-color: #f00;
}
Run Code Online (Sandbox Code Playgroud)
脚本:
alert(document.getElementById('test').style.backgroundColor)
Run Code Online (Sandbox Code Playgroud)
但是如果我在 javascript 中设置 bgcolor 那么它会提醒 bgcolor 值:
document.getElementById('test').style.backgroundColor='#ff0';
alert(document.getElementById('test').style.backgroundColor) // rgb(255,255,0)
Run Code Online (Sandbox Code Playgroud)
那么,如何获取 bgcolor 值而不在样式表中定义的 js 中设置它呢?
请注意,如果值来自用户代理的样式表而不是我的样式表,我根本不想获取值。
我们正在开发一个Android应用程序.我们知道使用像APKTool,dex2jar这样的工具可以获得APK的源代码.
1)他们可以获得完整的源代码,以便他们可以轻松地重建相同的APK吗?
2)获取源代码后,其他人是否有可能以自己的名义上传重建的APK?
3)如果可能,如何防止这种情况?
我们的客户对此很感兴趣.