“Uncaught ReferenceError: cordova is not defined”

“Uncaught ReferenceError: cordova is not defined”

本文关键字:not defined is cordova Uncaught ReferenceError      更新时间:2023-09-26

我尝试在iOS上使用Facebook滑块菜单和PhoneGap。问题是我不能在sqlite中插入数据,当点击保存按钮时,我得到了这个错误:

"Uncaught ReferenceError: cordova is not defined".

来源:

<!DOCTYPE html>
<html>
<head>
    <title>Registration Form</title>
    <link rel="stylesheet" type="text/css" href="../../css/index.css" />
    <script type="text/javascript" src="../../js/SQLitePlugin.js"></script>
    <script type="text/javascript" charset="utf-8">
        // Wait for Cordova to load
    //
   document.addEventListener("deviceready", onDeviceReady, false);
   function onDeviceReady() {
     console.log("device ready");
   }
   function insert() {
   console.log("Run1");
   var db = window.sqlitePlugin.openDatabase({
     name: "PHR.db"
   });
   db.transaction(function(tx) {
     tx.executeSql(
       'CREATE TABLE IF NOT EXISTS SignUp (firstname VARCHAR,lastname VARCHAR,email VARCHAR, password VARCHAR ,question1 VARCHAR, answer1 VARCHAR,question2 VARCHAR,answer2 VARCHAR, question3 VARCHAR,answer3 VARCHAR)'
     );
   });
   db.transaction(function(tx) {
     var fname = document.getElementById("fn").value;
     var lname = document.getElementById("ln").value;
     var emai = document.getElementById("em").value;
     var passw = document.getElementById("pas").value;
     var qus1 = document.getElementById("qs1").value;
     var ans1 = document.getElementById("as1").value;
     var qus2 = document.getElementById("qs2").value;
     var ans2 = document.getElementById("as2").value;
     var qus3 = document.getElementById("qs3").value;
     var ans3 = document.getElementById("as3").value;
     tx.executeSql(
       'INSERT INTO SignUp (firstname,lastname,email, password ,question1 , answer1 ,question2 ,answer2 , question3,answer3) VALUES (?,?,?,?,?,?,?,?,?,?)', [
         fname, lname, emai, passw, qus1, ans1, qus2, ans2, qus3,
         ans3
       ]);
   }, null);
   });
   }    
    </script>

你需要添加

<script type="text/javascript" src="cordova.js"></script>

在你的代码中:

<head>
<title>Registration Form</title>
<link rel="stylesheet" type="text/css" href="../../css/index.css" /> 
<script type="text/javascript" src="cordova.js"></script>  //--> You missed this line.
<script type="text/javascript" src="../../js/SQLitePlugin.js"></script>
<script type="text/javascript" charset="utf-8">
//Remaining code goes here ... ...

在你的HTML文件中添加cordova脚本,int head

我在移动设备上使用react + cordova时遇到了一个非常棘手的情况。当试图在移动设备上利用cordova的datadirectory字段时,这种情况特别发生,prod构建会出错。

为我工作的解决方案

直接引用window.cordova而不是cordova