phonegap底層原理學習和研究(三)

      針對Phonegap開發中常用的DroidGap類繼承自PhonegapActivity,PhonegapActivity繼承自Activity。源代碼如下:

Java代碼  收藏代碼
  1. /* 
  2.  * PhoneGap is available under *either* the terms of the modified BSD license *or* the 
  3.  * MIT License (2008). See http://opensource.org/licenses/alphabetical for full text. 
  4.  *  
  5.  * Copyright (c) 2005-2010, Nitobi Software Inc. 
  6.  * Copyright (c) 2010, IBM Corporation 
  7.  */  
  8. package com.phonegap.api;  
  9.   
  10. import android.app.Activity;  
  11. import android.content.Intent;  
  12.   
  13. /** 
  14.  * The Phonegap activity abstract class that is extended by DroidGap. 
  15.  * It is used to isolate plugin development, and remove dependency on entire Phonegap library. 
  16.  */  
  17. public abstract class PhonegapActivity extends Activity {  
  18.   
  19.     /** 
  20.      * Add a class that implements a service. 
  21.      *  
  22.      * @param serviceType 
  23.      * @param className 
  24.      */  
  25.     abstract public void addService(String serviceType, String className);  
  26.       
  27.     /** 
  28.      * Send JavaScript statement back to JavaScript. 
  29.      *  
  30.      * @param message 
  31.      */  
  32.     abstract public void sendJavascript(String statement);  
  33.   
  34.     /** 
  35.      * Launch an activity for which you would like a result when it finished. When this activity exits,  
  36.      * your onActivityResult() method will be called. 
  37.      *   
  38.      * @param command           The command object 
  39.      * @param intent            The intent to start 
  40.      * @param requestCode       The request code that is passed to callback to identify the activity 
  41.      */  
  42.     abstract public void startActivityForResult(IPlugin command, Intent intent, int requestCode);  
  43.   
  44.     /** 
  45.      * Set the plugin to be called when a sub-activity exits. 
  46.      *  
  47.      * @param plugin            The plugin on which onActivityResult is to be called 
  48.      */  
  49.     abstract public void setActivityResultCallback(IPlugin plugin);  
  50.   
  51.     /** 
  52.      * Load the specified URL in the PhoneGap webview. 
  53.      *  
  54.      * @param url               The URL to load. 
  55.      */  
  56.     abstract public void loadUrl(String url);  
  57. }  

 

在使用這個類啓動Webapp移動項目時候可以配置許多東西,如下:

Java代碼  收藏代碼
  1. This class is the main Android activity that represents the PhoneGap  
  2. application.  It should be extended by the user to load the specific  
  3. html file that contains the application.  
  4.   
  5. As an example:  
  6.   
  7.     package com.phonegap.examples;  
  8.     import android.app.Activity;  
  9.     import android.os.Bundle;  
  10.     import com.phonegap.*;  
  11.       
  12.     public class Examples extends DroidGap {  
  13.       @Override  
  14.       public void onCreate(Bundle savedInstanceState) {  
  15.         super.onCreate(savedInstanceState);  
  16.                    
  17.         // Set properties for activity  
  18.         super.setStringProperty("loadingDialog""Title,Message"); // show loading dialog  
  19.         super.setStringProperty("errorUrl""file:///android_asset/www/error.html"); // if error loading file in super.loadUrl().  
  20.   
  21.         // Initialize activity  
  22.         super.init();  
  23.           
  24.         // Clear cache if you want  
  25.         super.appView.clearCache(true);  
  26.           
  27.         // Load your application  
  28.         super.setIntegerProperty("splashscreen", R.drawable.splash); // load splash.jpg image from the resource drawable directory  
  29.         super.loadUrl("file:///android_asset/www/index.html"3000); // show splash screen 3 sec before loading app  
  30.       }  
  31.     }  

 

DroidGap中可以配置的屬性如下:

Properties: The application can be configured using the following properties:


     //加載時候加載對話框的信息
     // Display a native loading dialog when loading app.  Format for value = "Title,Message".  
     // (String - default=null)
     super.setStringProperty("loadingDialog", "Wait,Loading Demo...");
 
     //加載對話對話框
     // Display a native loading dialog when loading sub-pages.  Format for value = "Title,Message".  
     // (String - default=null)
     super.setStringProperty("loadingPageDialog", "Loading page..."); 
    
     // Cause all links on web page to be loaded into existing web view, 
     // instead of being loaded into new browser. (Boolean - default=false)
     super.setBooleanProperty("loadInWebView", true);
    //加載相關的動畫信息
     // Load a splash screen image from the resource drawable directory.
     // (Integer - default=0)
     super.setIntegerProperty("splashscreen", R.drawable.splash); 
    //設置默認的背景色
     // Set the background color.
     // (Integer - default=0 or BLACK)
     super.setIntegerProperty("backgroundColor", Color.WHITE);
     //設置超時時間
     // Time in msec to wait before triggering a timeout error when loading
     // with super.loadUrl().  (Integer - default=20000)
     super.setIntegerProperty("loadUrlTimeoutValue", 60000); 
    //設置請求錯誤時候的提示頁面
     // URL to load if there's an error loading specified URL with loadUrl().  
     // Should be a local URL starting with file://. (String - default=null)
     super.setStringProperty("errorUrl", "file:///android_asset/www/error.html"); 
    //是否在後臺運行的功能
     // Enable app to keep running in background. (Boolean - default=true)
     super.setBooleanProperty("keepRunning", false);
 
     
Phonegap.xml的配置如下:
     PhoneGap uses a configuration file at res/xml/phonegap.xml to specify the following settings.
     //允許phonegap訪問的路徑和域
     Approved list of URLs that can be loaded into DroidGap
         <access origin="http://server regexp" subdomains="true" / >

   //日誌的模式
     Log level: ERROR, WARN, INFO, DEBUG, VERBOSE (default=ERROR)
         <log level="DEBUG" /> 

Phonegap plugins:
     PhoneGap uses a file at res/xml/plugins.xml to list all plugins that are installed.
     Before using a new plugin, a new element must be added to the file.
         name attribute is the service name passed to PhoneGap.exec() in JavaScript
         value attribute is the Java class name to call.
     
     <plugins>
         <plugin name="App" value="com.phonegap.App"/> 
         ...
     </plugins>


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章