web-dev-qa-db-ja.com

Cordova DeviceReadyが起動しない

私はこの数日間、これに頭を打ちました。新しいFileTransfer()オブジェクトを作成しようとすると、いくつかの「定義されていないオブジェクト」エラーが発生した後、問題はより基本的であるように見えます-何らかの理由でDeviceReadyイベントが発生していません。

スタックオーバーフローはこの問題に多くの影響を及ぼしますが、それらのほとんどは、異なるアーキテクチャを備えた3.x以前のCordovaビルドに関係しています(4.1.2を使用しています)。プラグインの削除と追加、コルドバの更新など、見つけることができる新しいトピックの提案を試してみましたが、役に立ちませんでした。問題を切り分けるために、スタートアップコードを数行にコメントアウトしました。

Index.html:

<!DOCTYPE html>
<html>
<head>
  <title>Blah</title>
  <meta charset="utf-8"/>
  <meta name="viewport" content="initial-scale=1, user-scalable=no, minimum-scale=1, maximum-scale=1">
  <link href="res/topcoat/css/topcoat-mobile-light.min.css" rel="stylesheet">
  <link href="res/css/styles.css" rel="stylesheet">
  <link href="res/css/pageslider.css" rel="stylesheet">
  <script data-main="js/main" src="lib/require.js"></script>
</head>

Main.js:

require(["app/Application"], function (Application) {
  "use strict";

  document.addEventListener("deviceready", function(){
      $('body').html("<p>device is ready</p>");
  },true);

  $('body').html("<p>waiting...</p>");
});

少し後にボディに「デバイスの準備ができました」と表示する代わりに、画面には「待機中...」と表示されます。これは、iOSエミュレーターとブラウザー(cordovaエミュレートブラウザー)の両方で発生します。

コルドバ情報:

$ cordova -v
4.1.2

プラグイン情報:

$ cordova plugins
org.Apache.cordova.globalization 0.3.3 "Globalization"

(グローバリゼーションが存在しない場合も同じ結果が得られます)。

探している他の場所はありますか?コマンドラインから実行していますが、違いがある場合。

23
eb1

この場合、cordova.jsが表示されないため、アプリケーションでcordova.jsあなたの例では

<script src="cordova.js"></script>

注:pathto cordova.jsは、アプリ内の場所によって異なります

50
Alexander T.

削除するまで、最初は修正されませんでした

< meta http-equiv="Content-Security-Policy" content=".." / >
9
A. Soufi

最近同じ問題が発生しましたが、私の場合はcordova.jsはすでに適切に含まれていました。

最終的に私のために働いたのは、removeプラットフォームの単純なaddiosでした。

cordova platform remove ios
cordova platform add ios

iosプラットフォームを完全に再構築し、その間に他の主要な変更(Cordovaのアップグレード、XCodeのアップグレードなど)が行われてからかなりの時間が経ちました。私のconfig.xmlまたは既存のiosビルドは、何らかの形で最新のCordova要件に準拠していませんでした。

1
Elliot B.