ios/android 용 cordova에서 매우 간단한 응용 프로그램을 만들고 있습니다. 나는 그것을 모두 만들었지 만 나는 데이터베이스에 문제가있다. 나는 애플 리케이션이 인터넷을 찾았을 때 인터넷을 찾는다. 인터넷이 api를 사용하여 로그인하는 것보다 사용 가능하지만 또한 사용자 로그인을 위해 두 개의 데이터베이스 하나를 만든다. (좋은 연습은 아니지만 나의 요구 사항은 뭔가를 검색 할 것이다. 데이터베이스 암호화)를 사용하고 현재 사용자 만 데이터베이스에 저장합니다. 다른 db는 사용자의 오프라인 작업을 저장하는 데 사용됩니다. 그러나 내가 db가 이미 만들어 졌는지 알 수있는 방법을 분명히하지 않을 때. 다음은 코드입니다. 친절하게 점검합니다. 어디에서나 검색 할 수 있으며, 테이블을 확인하는 것 외에는 해결책이없는 것 같지만 체크 테이블을 만들 때 프로그램이 작동을 멈 춥니 다.웹 SQL이 이미 존재하는지 어떻게 알 수 있습니까?
응용 프로그램이 시작되면 명령 실행 후 유효성 검사 후보다 userid, password를 묻습니다. 인터넷이 여기 액세스 DB를 사용할 수 없지만 가능한 경우 인터넷이, 사용자 로그인 및 DB를 만들 경우
document.addEventListener("deviceready", onDeviceReady(user, serviceURL, pass), false)
다음은 DB 그렇게 로그인 사용자를 할 수있는 경우 내가 아는 방법, 문제는 내가 deviceready에 사용하고 기능입니다 그렇지 않으면 처음으로 인터넷이 필요하다는 경고를 보냅니다.
function onDeviceReady(user, serviceURL, pass) {
if(navigator.network.connection.type == Connection.NONE)
{
var db = window.openDatabase(
'test',
'1.0.0',
'Test Database',
64 * 1024
);
db.transaction(function (tx) {
tx.executeSql('SELECT * FROM USERS', [], function (tx, results) {
var len = results.rows.length, i;
msg = "<p>Found rows: " + len + "</p>";
}
alert(msg);
for (i = 0; i < len; i++){
alert(results.rows.item(i).user);
}
}, null);
});
}
else
{
alert("Internet is available!!");
$.getJSON(serviceURL + 'APIjson.php?user='+user+'&pass='+pass+'&action=login', function(data)
{
if(data.error==-1)
{
alert("Invalid user id or password.");
return false;
}
else {
//navigator.notification.activityStop(); // for android only
// ActivityIndicator.hide(); // for IOS
window.localStorage["user_id"] = data.id;
var db = window.openDatabase(
'test',
'1.0.0',
'Test Database',
64 * 1024
);
db.transaction(function populateDB(tx) {
tx.executeSql('DROP TABLE IF EXISTS USERS');
tx.executeSql('CREATE TABLE IF NOT EXISTS USERS (id unique, user, pass)');
var sql = 'INSERT INTO USERS (id, user, pass) VALUES (?, ?, ?)';
tx.executeSql(sql,[data.id, user, pass]);
},function errorCB(tx, err) {
alert("Error processing SQL: "+err);
},function successCB() {
alert("success!");
});
window.location.href = "contact.html";
return true;
}
})
}
}
는 또한 데이터베이스 행이 와서는 경고한다 howmany 렌에 검색 할 때 추가하려고하지만 실패하고 내 응용 프로그램 중지 당신은 자바 스크립트가로 재 이동해야을
if (!len > 0) {
alert("Sorry you need to connect internet for first time use");
return false;
감사를, (스크린 샷 참조)를 클릭! – KamalPanhwar
데이터베이스가 저장소에 있는지 여부를 알 수있는 방법이 없다는 뜻입니까? 나는 이것이 모든 것을 향해 나아가고 있다고 대답을 많이 확인했다.내 웹 SQL이 이미 존재하는지 알 수있는 방법이 있어야합니다! 나는 버전으로 노력하고 있지만 여전히 코딩에 대해 혼란스러워하고있다. – KamalPanhwar
가능합니다. 질문에 대한 답변이 있으면 크롬 디버그 콘솔 – Nosh