2
여기에 주요 벽돌 벽으로 달려 있습니다. SQL lite 데이터베이스에 패키지화해야하는 데이터베이스가 있습니다. 나는 또한 자바 스크립트에서 webview 에서이 데이터베이스를 쿼리 할 수 있어야합니다. 자바 스크립트에서 데이터베이스를 쿼리 할 때 sql lite는 "no such table"메시지와 함께 오류 코드 1을 반환합니다. 어떤 아이디어?안드로이드 HTML5에서 임베디드 sql lite 데이터베이스에 액세스
WebSettings settings = myWebView.getSettings();
settings.setJavaScriptEnabled(true);
settings.setDatabaseEnabled(true);
//String databasePath = this.getApplicationContext().getDir("database", Context.MODE_PRIVATE).getPath();
String databasePath ="/data/data/com.example.helloandroid/databases/";
settings.setDatabasePath(databasePath);
myWebView.setWebChromeClient(new WebChromeClient() {
@Override
public void onExceededDatabaseQuota(String url, String databaseIdentifier, long currentQuota, long estimatedSize,
long totalUsedQuota, WebStorage.QuotaUpdater quotaUpdater) {
quotaUpdater.updateQuota(estimatedSize * 2);
}
});
더 문서가이 거기에 없다는 것을 지지리 :
여기 여기에 관련 자바 년대 JS 코드
var database = window.openDatabase("testdb5", "", "main total", 1024 * 1024);
if (database)
document.write('got');
database.transaction(function (tx) {
tx.executeSql("SELECT * FROM testtable", [], function (tx, result) {
for (var i = 0, item = null; i < result.rows.length; i++) {
item = result.rows.item(i);
document.write(item.name);
}
});
});
입니다! 어떤 도움이라도 대단히 감사합니다.
애셋 (또는 res) 폴더의 데이터베이스를 앱의 데이터베이스 폴더에 복사 했습니까? 그리고 API를 사용하여 Java 내에서 액세스 할 수 있습니까? –
나는 내가 그랬다고 생각했다. 나는이 튜토리얼을 복사했다. http://www.reigndesign.com/blog/using-your-own-sqlite-database-in-android-applications/ 문제가 있습니까? –
DataBaseHelper 클래스의 copyDataBase 메소드가 어느 시점에서 호출되는지 확인하십시오. :) adb 쉘을 사용하여 파일이 실제로 복사되었는지 확인할 수 있습니다. 의견을 읽은 후 –