2016-11-14 43 views
1

我有JS代码相关项对象在codenameone项目中,而我试图从js文件中调用该对象时,它给了我Uncaught ReferenceError:未在我的Chrome浏览器中定义相机 错误,我试图上传图像获取未捕获ReferenceError:未定义相机

下面是我codenameone代码

camera.set("capture",new JSFunction(){ 
public void apply(JSObject self, Object[] args) { 
Display.getInstance().openImageGallery(new ActionListener(){ 
@Override 
public void actionPerformed(ActionEvent evt) { 
String imagePath =""; 
if(evt!=null){ 
imagePath=(String)evt.getSource(); 
final JSObject uploadedFile = (JSObject)ctx.get("document.getElementById('uploadedFile')"); 
uploadedFile.set("value",imagePath); 
} 
} 
}); 
} 
}); 
ctx.set("camera", camera); 

下面是我在哪里得到错误相机对象我用来给window.camera我的js文件,但在其给相同的上述错误捕获其中捕获是我在我的HTML文件中使用的按钮ID。

下面是我的js文件,为什么你收到此错误

document.getElementById('capture') 
.addEventListener('click', function(){ 
camera.capture(function(){ 
var results = document.getElementById("uploadedFile").value; 
document.getElementById("uploadedFile").value=results; 
}) 
}, true); 
+1

因此,您使用CN1 javascript网桥,但是您说您使用的是Chrome浏览器? JavaScript桥被设计为与Cn1 BrowserComponent一起使用。如果您在Cn1应用程序的上下文外部运行页面,则该桥不存在。 –

回答

0

JS相机文件没有被加载,多数民众赞成。

确保文件在此代码上方加载。

结构应该是这样的 - 包括>

文件SRC 然后 - > 这里脚本

0

我猜你正在试图嵌入内访问HTML5 API的浏览器组件。它无法访问HTML5的所有功能和哨音,并可能失败。我不确定这些设备是否可以在设备上工作,虽然在模拟器中您有更好的机会。

+0

在模拟器中我能够浏览我的文件,并通过javascript在我的html文件中获取该文件路径,但在我的html文件中,我使用formData提交该表单,它具有ajax调用来发送输入类型提交数据但提交无法提交表单。由于输入类型文件仅适用于浏览器,并且不适用于移动应用程序,所以我正在使用codenameone文件使用CN1 javascript网桥。那么,如何在ajax调用上提交表单数据。 –

+0

只需使用'MultipartRequest'类从Java执行此操作即可。查看JavaDoc的使用范例 –

相关问题