0

Phonegap/javascript コードを含むフラグメントの 1 つを使用して、タブとフラグメントを作成してアプリケーションを作成しようとしています。

phonegapアプリケーション(フラグメントなし)でのみ機能するコードがいくつかありましたが、コードをフラグメントに入れると機能しなくなります...

たとえば、以下のコードは機能していません...:

<!DOCTYPE html>
<html>
<head>
<title>Test</title>
<script type="text/javascript" src="cordova.js"></script>
<script type="text/javascript" src="jquery-2.0.3.min.js"></script>
<script type="text/javascript" src="jquery.mobile-1.3.2.min.js"></script>
<script>


    document.addEventListener("deviceready", onDeviceReady, false);
    function onDeviceReady(){
        alert("woot i loaded");
    }


</script>
</head>
</html>

ただし、最初は、タブに移動する前にコードが実行されているということです。phonegap コードのあるタブはデフォルトのタブではないため、アプリの読み込み時に読み込まれる可能性があり、それが原因で何も表示されないのですか?

public class DevicesListFragment extends Fragment{

    CordovaWebView webView; 
    @Override
    public void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        webView = new CordovaWebView(getActivity());
        **webView.loadUrl("file:///android_asset/www/index.html");**
            //maybe this is loading and running js before I switch to that tab?
    }
}

タブとフラグメントを含む Android アプリケーション内で PhoneGap を操作する場合、何か特別なことをする必要がありますか?

4

1 に答える 1

1

まず、ブラウザではなくモバイル/エミュレータにアプリを実装してみてください

    <!DOCTYPE html>
    <html>
      <head>
        <title>Device Ready Example</title>

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

        // Wait for device API libraries to load
        //
        function onLoad() {
            document.addEventListener("deviceready", onDeviceReady, false);
        }

        // device APIs are available
        //
        function onDeviceReady() {
            // Now safe to use device APIs
        }

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

MyPhoneGapActivity.java

import org.apache.cordova.DroidGap;

import android.os.Bundle;

public class MyPhoneGapActivity extends DroidGap {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        super.loadUrl("file:///android_asset/www/index.html");
    }
}

または、以下の行を参照してください

http://docs.phonegap.com/en/3.0.0/cordova_events_events.md.html#イベント

于 2013-10-16T16:01:40.233 に答える