2012-06-12 39 views
5

Tôi đang làm việc với PhoneGap phiên bản 1.8 (cordova-1.8.0.js) và tôi đang cố tạo ứng dụng cho Android. Tôi đang gỡ lỗi trên một thiết bị thực tế thông qua Eclipse.PhoneGap - Không thể ghi vào tệp cho Android

Tôi đang cố gắng viết văn bản vào một tệp. Tôi đang sử dụng mã ví dụ API cung cấp bởi PhoneGap tại

http://docs.phonegap.com/en/1.8.0/cordova_file_file.md.html#FileWriter

Tôi đã có thể tạo ra các ứng dụng với thiết lập hiện tại của tôi vì vậy tôi biết nó hoạt động tốt, tôi chỉ không thể ghi vào một tập tin . Tôi đã dành nhiều thời gian về vấn đề này nhưng tiếp tục nhận được thông báo lỗi sau:

E/Web Console(27356): Uncaught ReferenceError: LocalFileSystem is not defined at file:///android_asset/www/debug.js:28 

dòng 28 là

window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, gotFS, fail); 

Tôi đang sử dụng mã chính xác từ trang web của API.

Bất kỳ đề xuất nào về những gì tôi có thể làm sai?

Có lẽ tôi không nhập các thư viện Java thích hợp trong thiết lập PhoneGap của mình?

tôi có nhập khẩu sau đây:

import android.os.Bundle; 
import org.apache.cordova.*; 
import android.view.WindowManager; 
import android.view.KeyEvent; 

Cảm ơn bạn.

EDIT:

Tôi đã sử dụng

$(document).ready(function() { 

Thay vì

document.addEventListener("deviceready", onDeviceReady, false); 

Vì nó sẽ không bao giờ cháy. Dưới đây là mã chính xác của tôi, Ngoài ra tôi có

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 

hoạt động trong dự án điện thoại của tôi.

mã đầy đủ:

<!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> 

Tôi cũng đã ném trong một chức năng cảnh báo trên thiết bị gọi sẵn sàng, nó không bao giờ được gọi là gì cả.

Bất kỳ suy nghĩ nào về cách mã này không hoạt động?

Cách duy nhất mà tôi từng có thể nhận được mã để bắn vào đầu lên đang sử dụng

$(document).ready(function() { 

}); 

Mà không phải là tốt cho tôi đoán cố gắng để gọi các tập tin người viết như tôi tiếp tục nhận được thông báo lỗi tương tự.

Trả lời

1

Vấn đề không phải là bằng cách viết tệp nếu deviceready không kích hoạt - đó là cách ứng dụng của điện thoại được thiết lập.

Bạn phải nhập khẩu sau đây trong hoạt động chính của bạn:

import android.app.Activity; // used to fire deviceready 
import android.os.Bundle; 
import org.apache.cordova.*; 
+0

Tôi đã cập nhật bài viết của tôi.Nếu tôi sử dụng chức năng deviceready, tôi thậm chí không thể làm điều đó để bắn. Có vấn đề gì với tính năng này và phonegap cho android? Tôi đã dành nhiều giờ cho vấn đề này nhưng không thành công. Bất kì sự trợ giúp nào đều được đánh giá cao. Cảm ơn bạn. – user1017063

+0

@ user1017063 kiểm tra chỉnh sửa của tôi. – AustinAllover

+1

@AustinAllover Cùng vấn đề tôi đang gặp phải trong ios. Làm thế nào tôi có thể giải quyết điều này. Làm ơn giúp tôi –

Các vấn đề liên quan