0

サーバー経由でロードされた jQTouch アプリケーションがあるので、偽ネイティブ アプリの PhoneGap で Web ページを全画面表示するだけです。残念ながら、PhoneGap で試した各ソリューションには問題があります。画面サイズが実際よりも高いと認識されます。これにより、下部に固定されたタブバーが永久に画面外に表示され、使用できなくなります。以下の私のコードでこれを再現し、iTabbar オンライン デモにアクセスできるはずです。この問題を修正する方法について何か考えはありますか?

バックグラウンドでは、iOS サファリでアプリ ページに移動すると、ページがホーム画面に保存されるだけでなく、正常に動作します。どちらの場合も、Web ビューは画面の下部で停止するため、タブバーが表示されます。また、build.phonegap.com を使用してコンパイルしています (ローカルでコンパイルしていません)。

私は2つの方法を試しました:

  1. childBrowser プラグインをロードしてページを呼び出します (オプションでナビゲーションバーを非表示にします)

  2. 次の config.xml パラメータを設定して、phonegap が Safari に切り替わらないようにしてから、リンクをロードするだけです (私の考えではよりクリーンな方が望ましいです。index.html と config.xml を以下に貼り付けました)。

config.xml パラメータの詳細:

すべてのリンクを WebView で開く

値が true または false の stay-in-webview

  • 例:<preference name="stay-in-webview" value="true" />

  • true に設定すると、すべてのリンク (ターゲットが空白に設定されている場合でも) がアプリの Web ビューで開きます

  • サーバーからのページがアプリ全体を引き継ぐ場合にのみ、この設定を使用してください

  • デフォルトは false

(ソース: https://build.phonegap.com/docs/config-xml )

私のindex.html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>

<meta http-equiv="Content-type" content="text/html;charset=utf-8">

<title>MyApp</title>

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

</head>
<body>
<p><a href="http://www.itabbar.com/itabbar/demo.html#home">Launch iTabbar</a></p>
</body>
</html>

私のconfig.xml

<?xml version="1.0" encoding="UTF-8" ?>
<widget xmlns = "http://www.w3.org/ns/widgets"
    xmlns:gap = "http://phonegap.com/ns/1.0"
    id        = "com.phonegap.myapp"
    versionCode="10" 
    version   = "1.0.0">

<!-- versionCode is optional and Android only -->

<name>MyApp</name>

<description>
    My app is...
</description>

<author href="https://myurl.com" email="me@myurl.com">
    me
</author>

<preference name="stay-in-webview" value="true" />

</widget>
4

1 に答える 1

0

正しい方向に向けてくれた PhoneGap Support に感謝します。問題は次の場所にありましたfullscreen.js:

window.navigator.standalonewebapp がホームスクリーンから起動されたのか、ブラウザ内から起動されたのかを判断するために fullscreen.js が使用するバイナリの読み取り専用パラメータです。false の場合 (つまり、Web ブラウザーで)、アドレス バーを許可するために 60px を追加します。true の場合 (つまり、ホーム画面から起動した場合)、ピクセルは高さに追加されません。

そのため、phonegap 内から起動したとき、window.navigator.standalone は true のはずでしたが、false でした。これにより、60px が誤って追加されました。今のところ、私はそれを にハードコーディングしましたtrue

于 2012-09-21T21:45:26.540 に答える