私はこの数日間、これに頭を打ちました。新しい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"
(グローバリゼーションが存在しない場合も同じ結果が得られます)。
探している他の場所はありますか?コマンドラインから実行していますが、違いがある場合。
この場合、cordova.js
が表示されないため、アプリケーションでcordova.js
あなたの例では
<script src="cordova.js"></script>
注:pathto cordova.js
は、アプリ内の場所によって異なります
削除するまで、最初は修正されませんでした
< meta http-equiv="Content-Security-Policy" content=".." / >
最近同じ問題が発生しましたが、私の場合はcordova.js
はすでに適切に含まれていました。
最終的に私のために働いたのは、remove
プラットフォームの単純なadd
とios
でした。
cordova platform remove ios
cordova platform add ios
ios
プラットフォームを完全に再構築し、その間に他の主要な変更(Cordovaのアップグレード、XCodeのアップグレードなど)が行われてからかなりの時間が経ちました。私のconfig.xml
または既存のios
ビルドは、何らかの形で最新のCordova要件に準拠していませんでした。