nom*_*aam 5 javascript android dom cordova
我正在使用PhoneGap版本1.8(cordova-1.8.0.js),我正在尝试为Android制作应用程序.我正在通过Eclipse在实际设备上进行调试.
我正在尝试将文本写入文件.我正在使用PhoneGap提供的示例API代码
http://docs.phonegap.com/en/1.8.0/cordova_file_file.md.html#FileWriter
我已经能够使用我当前的设置创建应用程序,所以我知道它运行良好,我只是无法写入文件.我花了好几个小时来解决这个问题,但不断收到以下错误消息:
E/Web Console(27356): Uncaught ReferenceError: LocalFileSystem is not defined at file:///android_asset/www/debug.js:28
Run Code Online (Sandbox Code Playgroud)
第28行是
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, gotFS, fail);
Run Code Online (Sandbox Code Playgroud)
我正在使用API网站上的确切代码.
关于我可能做错什么的任何建议?
也许我没有在PhoneGap设置中导入正确的Java库?
我有以下导入:
import android.os.Bundle;
import org.apache.cordova.*;
import android.view.WindowManager;
import android.view.KeyEvent;
Run Code Online (Sandbox Code Playgroud)
谢谢.
编辑:
我在用
$(document).ready(function () {
Run Code Online (Sandbox Code Playgroud)
而不是
document.addEventListener("deviceready", onDeviceReady, false);
Run Code Online (Sandbox Code Playgroud)
因为它永远不会开火.这是我的确切代码,我也有
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
Run Code Online (Sandbox Code Playgroud)
在我的phonegap项目中活跃.
完整代码:
<!DOCTYPE html>
<html>
<head>
<title>FileWriter Example</title>
<script type="text/javascript" charset="utf-8" src="cordova-1.8.0.js"></script>
<script type="text/javascript" charset="utf-8">
// Wait for Cordova to load
//
document.addEventListener("deviceready", onDeviceReady, false);
// Cordova is ready
//
function onDeviceReady() {
alert("device ready"); // this never gets called
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, gotFS, fail);
}
function gotFS(fileSystem) {
fileSystem.root.getFile("readme.txt", {create: true, exclusive: false}, gotFileEntry, fail);
}
function gotFileEntry(fileEntry) {
fileEntry.createWriter(gotFileWriter, fail);
}
function gotFileWriter(writer) {
writer.onwriteend = function(evt) {
console.log("contents of file now 'some sample text'");
writer.truncate(11);
writer.onwriteend = function(evt) {
console.log("contents of file now 'some sample'");
writer.seek(4);
writer.write(" different text");
writer.onwriteend = function(evt){
console.log("contents of file now 'some different text'");
}
};
};
writer.write("some sample text");
}
function fail(error) {
console.log(error.code);
}
</script>
</head>
<body>
<h1>Example</h1>
<p>Write File</p>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
我还在设备就绪呼叫上投入了一个警报功能,它根本就没有被调用.
有关此代码如何工作的任何想法?
我可以在启动时获取代码的唯一方法是使用
$(document).ready(function () {
});
Run Code Online (Sandbox Code Playgroud)
哪个不好我想尝试调用文件写入器,因为我一直收到相同的错误消息.
小智 1
问题不在于写入文件,如果deviceready未触发则写入文件 - 问题在于您的phonegap应用程序的设置方式。
您必须在主要活动中导入以下内容:
import android.app.Activity; // used to fire deviceready
import android.os.Bundle;
import org.apache.cordova.*;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5474 次 |
| 最近记录: |