我写了一个Cordova插件来下载文件并将其保存在数据文件夹中.除了返回值之外,一切正常.我想显示一个进度条,需要获取当前进度.这是我的代码中的相关部分:
while ((readed = is.read(buffer)) > 0) {
fos.write(buffer, 0, readed);
totalReaded += readed;
int newProgress = (int) (totalReaded*100/fileSize);
if (newProgress != progress) {
progress = newProgress;
PluginResult res = new PluginResult(PluginResult.Status.OK, progress);
res.setKeepCallback(true);
callbackContext.sendPluginResult(res);
}
}
Run Code Online (Sandbox Code Playgroud)
我的JavaScript:
downloader.prototype.writeFile = function (downloaderSuccess, downloaderFailure, options) {
cordova.exec(downloaderSuccess, downloaderFailure, "downloader", "writeFile", options);
};
function downloaderSuccess(progress) {
WL.Logger.debug("Result: "+progress)
}
function downloaderFailure(error) {
WL.Logger.error("Error: "+error);
}
Run Code Online (Sandbox Code Playgroud)
发生的情况是只有在下载文件后才会输出进度.如果我将PluginResult.Status设置为NO_RESULT,它将不会输出任何内容.
我正在使用Eclipse插件“ IBM Worklight Developer Edition”。
我正在尝试调试适配器过程代码。为此,我尝试进行一些调试配置,但是它说服务器已经在运行(禁用调试按钮)。因此,我停止了服务器,然后再次尝试调试配置,这次启用了按钮,但是在控制台上我收到了“ 错误:无法两次加载此JVM TI代理,请在Java命令行中检查重复的jdwp选项。 ”
请帮助我进行调试配置。
我想为不同的Android设备设置不同的视口.为此,我使用这段代码.
<head>
<meta name="viewport" content="width=device-width; initial-scale=0.91; maximum-scale=0.91; user-scalable=0;target-densityDpi=device-dpi" />
<script>
if (window.devicePixelRatio == 1)
{
document.querySelector("meta[name=viewport]").setAttribute('content', 'width=device-width, initial-scale=0.51, maximum-scale=0.51, user-scalable=0,target-densityDpi=device-dpi');
} else if (window.devicePixelRatio == 2) {
document.querySelector("meta[name=viewport]").setAttribute('content', 'width=device-width, initial-scale=0.51, maximum-scale=0.51, user-scalable=0');
} else if (window.devicePixelRatio == .78) {
document.querySelector("meta[name=viewport]").setAttribute('content', 'width=device-width, initial-scale=0.51, maximum-scale=0.51, user-scalable=0, target-densityDpi=device-dpi');
} else if (window.devicePixelRatio == 1.5) {
document.querySelector("meta[name=viewport]").setAttribute('content', 'width=device-width, initial-scale=0.51, maximum-scale=0.51, user-scalable=0, target-densityDpi=device-dpi');
}
</script>
</head>
Run Code Online (Sandbox Code Playgroud)
现在的问题是它没有设置适当的内容值.并在Logcat中给出此错误
视口参数值"device-width;" 关键字"宽度"无法识别.内容被忽略了
视口参数值"device-width;" 关键字"宽度"无法识别.内容被忽略了
视口参数键";初始缩放"未被识别和忽略.
视口参数值"no;" 用于关键的"用户可扩展"无法识别.内容被忽略了
视口参数键"device-dpi"无法识别和忽略.
有什么建议.抱歉编辑不好我无法编辑它.
编辑:
在那,我的视频仍然没有在Android设备上工作.我希望我应该只使用一个css和tat css应该根据设备缩放图像.
为此,我使用了具有target-dpidensity的Viewport,并在第一次使用初始和最大比例时它正在工作但是现在当我在android上运行这种方法时它会忽略Viewport.
实际上问题是,当我在html的背景中设置图像并在任何Android设备上运行此应用程序时,它会以缩放的方式呈现图像.为此,我改变我的皮肤html和app.java文件并禁用缩放情绪,并使用target-dpidensity但所有方法都不起作用这里是html代码:

这是css文件:
body {
background-repeat: …Run Code Online (Sandbox Code Playgroud) 我已经看到了很多关于这个问题的问题,但没有确凿的答案.我在从Worklight适配器实现中调用Java类时遇到问题.我用IBM Worklight Java Adapter教程中的代码替换了我的代码,它以完全相同的方式失败.此外,我在IBM的网站上发现了一个回应,称Java 1.7编译器可能会导致此问题并改为使用Java 1.6.我验证了Eclipse中的编译器是Java 1.6.

我的Java类都以com开头(例如com.worklight.customcode).我已经尝试过调用公共静态方法(使用正确的语法)以及实例化对象和调用方法.如上所述,我还验证了我正在使用Java 1.6编译器.
以下是一些代码示例:
适配器实现文件:
function addTwoIntegers(a,b){
return {
result: com.worklight.customcode.Calculator1.addTwoIntegers(a,b)
};
}
Run Code Online (Sandbox Code Playgroud)
Java文件(未经编辑的IBM Worklight示例):package com.worklight.customcode;
import java.util.logging.Logger;
public class Calculator1 {
private final static Logger logger = Logger.getLogger(Calculator1.class.getName());
public static int addTwoIntegers(int first, int second){
logger.info("addTwoIntegers invoked");
return first + second;
}
public int subtractTwoIntegers(int first, int second){
logger.info("subtractTwoIntegers invoked");
return first - second;
}
}
Run Code Online (Sandbox Code Playgroud)
控制台出错:
TypeError:无法在对象[JavaPackage com.worklight.customcode.Calculator1]中调用属性addTwoIntegers.它不是一个功能,它是"对象".(%2FUsers%2Fhome%2Fdev%2Fapp%2Fappprj%2Fadapters%2Fadapter/adapter-impl.js#26)FWLSE0101E:引起:null
一些相关问题是:
我希望使用IBM Worklight v5.0.5修订包1设置Eclipse开发环境.
我可以获得有关旧版Worklight的安装链接的一些指示吗?
IBM Worklight 6.0 安装在带有 mySQL 数据库的 Liberty Profile 8.5.5 上。部署应用程序并尝试访问 Worklight 控制台时,控制台上遇到以下错误
错误 500:javax.servlet.ServletException:Filter[authenticationFilter]:找不到所需的过滤器类 - com.worklight.core.auth.impl.AuthenticationFilter.class
我尝试测试连接到db2的sql适配器,但我得到以下结果:
java.lang.ClassNotFoundException:在Worklight平台或项目中找不到类com.ibm.db2.jcc.DB2Driver
这是我的代码:
<dataSourceDefinition>
<driverClass>com.ibm.db2.jcc.DB2Driver</driverClass>
<url>jdbc:db2://localhost:50000/WLTEST</url>
<user>db2admin</user>
<password>db2admin</password>
</dataSourceDefinition>
Run Code Online (Sandbox Code Playgroud)
什么是错的?
我按照developerWorks上的官方指南创建并构建了一个Worklight项目.我在Android设备上部署了应用程序并且运行正常.但是当我用Xcode构建生成的本机项目时,我收到以下错误:
运行自定义构建阶段脚本:buildtime.sh /Users/gengsm/Documents/workspace/MobileClientMobileBankIphone-apsfwvobsizahnbjzlwhgbsbwusj/Build/Intermediates/MobileClientMobileBankIphone.build/Debug-iphonesimulator/MobileClientMobileBankIphone.build/Script-427B829D1393724500F223DC.sh:line 7:/ Users /gengsm/Documents/workspace/BTT_Mobile/MobileClient/apps/MobileBank/iphone/native/buildtime.sh:Permission denied DONE with script:buildtime.sh(exitStatus = 126)\n \n
我正在尝试从MFP服务器中提取20MB的文件.所以,我在我的客户端应用程序中编写了以下代码.
var resourceRequest = new WLResourceRequest("/adapters/AdapterExample/users/getUpdate",WLResourceRequest.POST);
resourceRequest.send().then(function(result){
Logger("Hello Im here ! : " + result.responseJSON.isSuccessful);
},function(error){
Logger("Im error ! : " + error);
});
Run Code Online (Sandbox Code Playgroud)
不幸的是,它以JSON格式显示以下错误:
JSON结果:{"isSuccessful":false,"errors":[" 数据大小超过允许的最大值10Mb".]}
Java适配器是否有任何数据大小限制,数据大小不能超过10 MB?
备注:以下代码是我的Java Adapter示例代码:
@POST
@Path("/getUpdate")
public String getUpdate() throws IOException{
JSONObject obj = new JSONObject();
java.nio.file.Path path = Paths.get("/Users/abc/Documents/example.zip");
byte[] fileData = Files.readAllBytes(path);
obj.put("fileName", path.getFileName().toString());
obj.put("size", Base64.encodeBase64String(fileData).length());
return obj.toString();
}
Run Code Online (Sandbox Code Playgroud) 应用程序建立在MobileFirst 8.0越来越坠毁在Android version 5下面同时呼吁https service使用adapter.同样的工作在version 5上面.
以下是设备日志中捕获的日志:
OkHttp ConnectionPool
at java.lang.Object.wait(Object.java)
at java.lang.Thread.parkFor(Thread.java:1205)
at sun.misc.Unsafe.park(Unsafe.java:325)
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:197)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2056)
at java.util.concurrent.LinkedBlockingQueue.poll(LinkedBlockingQueue.java:435)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1035)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1097)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:841)
Run Code Online (Sandbox Code Playgroud)
如果任何机构遇到同样的问题,请提供帮助.