4

この質問のバリエーションが何十回も尋ねられていることは知っていますが、この組み合わせに対処するものをまだ見つけていません: Adob​​e の Phonegap Build を使用して、iOS 7 で重ならないステータスバーを表示できるようにしたい.

PhoneGap Statusbar プラグインを config.xml に追加しました。

<gap:plugin name="com.phonegap.plugin.statusbar" version="1.1.0" />

<feature name="StatusBar">
  <param name="ios-package" value="CDVStatusBar" onload="true" />
</feature>

これにより、黒いステータスバーがサイトと重ならないように正しく表示されますが、テキストは (おそらく) 黒く表示されます。

適切な測定のためにconfig.xmlから設定を削除しましたios-statusbarstyleが、違いはないようです。

プラグイン ページには、config.xml オプションが PhoeGap ビルドでサポートされていないことが記載されているため、StatusBar javascript オブジェクトを使用しようとしました。これは私の完全な index.html ファイルです:

<!DOCTYPE html>
<html>
  <head>
    <script type="text/javascript" charset="utf-8" src="cordova.js"></script>
    <script type="text/javascript" charset="utf-8">

      function onLoad() {
          document.addEventListener("deviceready", onDeviceReady, false);
      }

      function onDeviceReady() {
        StatusBar.show();
        StatusBar.overlaysWebView(false);
        StatusBar.backgroundColorByHexString("#C8DB2F");
      }

    </script>
  </head>
  <body onload="onLoad()">
    Test.
  </body>
</html>

しかし、backgroundColorByHexString() 関数は何も実行せず、実際、StatusBar オブジェクトがまったくないように見えます。これは、PhoneGap Build のデバッグ ウィンドウを使用して確認されます。これらの行の後に配置しようとした JS は実行されないためです。 、おそらくエラーをスローしています。

ステータスバーの背景色またはテキストの色を設定する方法について何か考えはありますか? PhoneGapBuild の代わりに CLI を使用する必要がありますか?

4

2 に答える 2

2

これには遅すぎるかもしれません...しかし、私はあなたの正確なコードを使用し、phonegapビルドのアプリで機能しました. 代わりにこのプラグインを使用しました。

<gap:plugin name="org.apache.cordova.statusbar" version="0.1.4" />

これで onDeviceReady 関数を呼び出します。

// wait for phonegap to be ready
document.addEventListener('deviceready', onDeviceReady, false);
于 2015-01-26T02:27:01.160 に答える
0

PhoneGap Developer Appでテストすると JS が機能するが、iOS エミュレーターでは機能しない (つまり、cordova emulate iosコマンド ラインから実行する場合) ことに気付きました。さらにテストするとdeviceready、iOS エミュレーターではイベントがまったく発生しないようです。

「phonegap deviceready not sent」をグーグルで検索すると、同様のエラーレポートが表示されますが、通常は再インストールまたはタイプミスを修正することですべて神秘的に解決されます.

問題がプラグインにある可能性があることを指摘した、非常に有用な回答が 1 つあります。特にファイルプラグイン。File プラグインは使用しませんでしたが、エミュレーターの system.log を確認したところ、プラグインに関連するエラーがいくつかありました。

Sep 12 10:26:58 username.local MyApp[8218] <Warning>: ERROR: Plugin 'StatusBar' not found, or is not a CDVPlugin. Check your plugin mapping in config.xml.
[…]
Sep 12 10:26:58 username.local MyApp[8218] <Warning>: ERROR: Plugin 'Device' not found, or is not a CDVPlugin. Check your plugin mapping in config.xml.

そのため、すべてのプロジェクトのプラグインを削除してから、再度追加しました。再インストールの前後に、バージョンが同一である間にバージョンを確認しました。

org.apache.cordova.console 0.2.10 "Console"
org.apache.cordova.device 0.2.11 "Device"
org.apache.cordova.geolocation 0.3.9 "Geolocation"
org.apache.cordova.statusbar 0.1.7 "StatusBar"

エミュレーターを再度実行すると、devicereadyイベントが発生し、ステータス バーの色が変わりました。


要約すると、どのプラグインを使用していて、それらを再インストールしようとしましたか?

于 2014-09-12T07:51:56.297 に答える