`
longgangbai
  • 浏览: 7338913 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

phonegap底层原理学习和研究(三)

阅读更多

              针对Phonegap开发中常用的DroidGap类继承自PhonegapActivity,PhonegapActivity继承自Activity。源代码如下:

/*
 * PhoneGap is available under *either* the terms of the modified BSD license *or* the
 * MIT License (2008). See http://opensource.org/licenses/alphabetical for full text.
 * 
 * Copyright (c) 2005-2010, Nitobi Software Inc.
 * Copyright (c) 2010, IBM Corporation
 */
package com.phonegap.api;

import android.app.Activity;
import android.content.Intent;

/**
 * The Phonegap activity abstract class that is extended by DroidGap.
 * It is used to isolate plugin development, and remove dependency on entire Phonegap library.
 */
public abstract class PhonegapActivity extends Activity {

    /**
     * Add a class that implements a service.
     * 
     * @param serviceType
     * @param className
     */
    abstract public void addService(String serviceType, String className);
    
    /**
     * Send JavaScript statement back to JavaScript.
     * 
     * @param message
     */
    abstract public void sendJavascript(String statement);

    /**
     * Launch an activity for which you would like a result when it finished. When this activity exits, 
     * your onActivityResult() method will be called.
     *  
     * @param command			The command object
     * @param intent			The intent to start
     * @param requestCode		The request code that is passed to callback to identify the activity
     */
    abstract public void startActivityForResult(IPlugin command, Intent intent, int requestCode);

    /**
     * Set the plugin to be called when a sub-activity exits.
     * 
     * @param plugin			The plugin on which onActivityResult is to be called
     */
    abstract public void setActivityResultCallback(IPlugin plugin);

    /**
     * Load the specified URL in the PhoneGap webview.
     * 
     * @param url				The URL to load.
     */
    abstract public void loadUrl(String url);
}

 

在使用这个类启动Webapp移动项目时候可以配置许多东西,如下:

This class is the main Android activity that represents the PhoneGap
application.  It should be extended by the user to load the specific
html file that contains the application.

As an example:

    package com.phonegap.examples;
    import android.app.Activity;
    import android.os.Bundle;
    import com.phonegap.*;
    
    public class Examples extends DroidGap {
      @Override
      public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
                 
        // Set properties for activity
        super.setStringProperty("loadingDialog", "Title,Message"); // show loading dialog
        super.setStringProperty("errorUrl", "file:///android_asset/www/error.html"); // if error loading file in super.loadUrl().

        // Initialize activity
        super.init();
        
        // Clear cache if you want
        super.appView.clearCache(true);
        
        // Load your application
        super.setIntegerProperty("splashscreen", R.drawable.splash); // load splash.jpg image from the resource drawable directory
        super.loadUrl("file:///android_asset/www/index.html", 3000); // show splash screen 3 sec before loading app
      }
    }


 

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>

分享到:
评论
4 楼 longgangbai 2012-08-24  
zhiduo5 写道
longgangbai 写道
zhiduo5 写道
你的文章果然好用,能告诉我怎么设置super.loadUrl();时的黑屏,我想把它换成本地页面(.html),谢谢!

谢谢,分享,沟通交流


我想准确的判断页面加载是否完成,不知是否可有方法,不想延迟6秒

页面加载与网络有关,目前暂时没有相关的方法。
3 楼 zhiduo5 2012-08-23  
longgangbai 写道
zhiduo5 写道
你的文章果然好用,能告诉我怎么设置super.loadUrl();时的黑屏,我想把它换成本地页面(.html),谢谢!

zhiduo5 写道
你的文章果然好用,能告诉我怎么设置super.loadUrl();时的黑屏,我想把它换成本地页面(.html),谢谢!

谢谢,分享,沟通交流


我想准确的判断页面加载是否完成,不知是否可有方法,不想延迟6秒
2 楼 longgangbai 2012-08-22  
zhiduo5 写道
你的文章果然好用,能告诉我怎么设置super.loadUrl();时的黑屏,我想把它换成本地页面(.html),谢谢!

zhiduo5 写道
你的文章果然好用,能告诉我怎么设置super.loadUrl();时的黑屏,我想把它换成本地页面(.html),谢谢!

谢谢,分享,沟通交流
1 楼 zhiduo5 2012-08-11  
你的文章果然好用,能告诉我怎么设置super.loadUrl();时的黑屏,我想把它换成本地页面(.html),谢谢!

相关推荐

    phonegap底层原理学习和研究(一)

    PhoneGap底层原理的学习和研究是理解如何将这些Web技术转化为可在iOS、Android等平台上运行的本地应用的关键。在本篇文章中,我们将深入探讨PhoneGap的核心概念、工作流程以及其与Android平台的集成。 首先,...

    PhoneGap介绍与原理

    ### PhoneGap介绍与原理 #### 背景与挑战 随着移动互联网的快速发展,各种平台如雨后春笋般涌现,其中包括移动设备、桌面应用、Web应用及Flash应用等。这种多平台的趋势为企业和个人开发者带来了前所未有的机遇,...

    phonegap学习资料

    #### 三、PhoneGap 工作原理 **PhoneGap** 的工作原理基于以下几个关键点: - **移动 SDKs**:各个移动平台的 SDK 内置了一个浏览器组件。 - **iOS** 使用的是 **UIWebView** 对象。 - **Android** 使用的是 **...

    IONIC+PhoneGap项目源码

    1. "深入浅出 phonegap 代码.zip" - 这个文件可能是关于PhoneGap的教程或者示例代码,包含了深入讲解PhoneGap使用方法的代码示例,可以帮助初学者理解PhoneGap的工作原理和实践应用。 2. "ionic-1.1.zip" - 这是...

    phonegap源码+示例

    这个资源包含PhoneGap的源代码,版本为Cordova2.9,以及相关的示例程序,这为我们深入理解PhoneGap的工作原理和开发流程提供了宝贵的材料。 Cordova2.9是PhoneGap的一个重要版本,它在那时提供了对多种移动操作系统...

    phonegap完整例子!

    PhoneGap是一个开源框架,它允许开发者使用HTML5、CSS3和JavaScript来构建跨平台的移动应用。这个"phonegap完整例子!"是针对Android平台的一个示例项目,...这些内容为深入学习和实践PhoneGap开发提供了全面的指导。

    phoneGAP2.9.1.zip

    - **熟悉的开发环境**:对于熟悉Web开发的程序员来说,PhoneGap使用HTML、CSS和JavaScript,这意味着他们无需学习新的编程语言。 - **设备API访问**:通过PhoneGap,Web应用可以访问手机硬件功能,如相机、联系人...

    phonegap源码

    总的来说,"phonegap-2.7.0源码"是一个宝贵的学习和研究资源,对于理解PhoneGap的工作原理、Web与原生平台之间的交互,以及早期移动应用开发的历程都有重要的价值。通过深入研究,开发者可以提升自己的技能,同时也...

    PhoneGAP实例源码

    通过研究这些源码,开发者不仅可以学习到PhoneGap的基本用法,还能了解到如何利用PhoneGap调用设备API,如网络通信、传感器数据、用户界面交互等。这对于希望入门移动开发或者提升PhoneGap技能的开发者来说是一份...

    phoneGap cordova 学习示例

    PhoneGap和Cordova是两个密切相关的移动应用开发框架,它们允许开发者使用HTML、CSS和JavaScript来构建跨平台的原生...在实际开发中,理解并熟练运用PhoneGap和Cordova的原理和特性,能够显著提升开发效率和应用质量。

    PhoneGap实例

    通过学习和分析`phonegap100_apidemo`中的代码,开发者不仅能理解PhoneGap的工作原理,还能掌握如何将这些技术应用到实际项目中,从而构建出功能丰富的跨平台移动应用。在实践中,不断调试和优化这些示例,有助于...

    PhoneGap学习[归纳].pdf

    PhoneGap学习 PhoneGap是一个强大的开源框架,它允许开发者使用熟悉的Web技术如HTML、CSS和JavaScript来创建跨平台的移动应用。这一框架的核心理念是将Web开发的便捷性引入到移动应用开发中,使得开发者可以构建能...

    PhoneGap开发者指南源码

    通过这份"PhoneGap开发者指南源码",开发者不仅能学习到PhoneGap的基本用法,还能深入理解其工作原理,进而开发出具有丰富功能和优秀用户体验的跨平台移动应用。同时,不断实践和探索,将使开发者在PhoneGap开发领域...

    PhoneGap Demo下载.rar

    通过学习和调试这个Demo,你可以了解PhoneGap的工作原理,为之后开发更复杂的应用打下基础。同时,这也是检查和解决PhoneGap环境问题的一个好方法,如果你在搭建环境时遇到困难,对照这个Demo的配置和运行过程,或许...

    PhoneGap demo

    这个"PhoneGap demo"作为一个实际案例,可以帮助开发者理解PhoneGap的工作原理,学习如何将Web技术应用于移动开发,同时也可以借鉴其设计和实现方式,提升自己的开发技能。尽管对于初学者来说可能有一定难度,但它...

    PhoneGap环境搭建demo

    PhoneGap是一种开源框架,它允许开发者使用HTML5、CSS3和JavaScript来构建原生的移动应用程序,而无需深入学习各种平台的原生编程语言。PhoneGap环境搭建是开发跨平台移动应用的第一步,这里我们将详细讲解如何进行...

    PHONEGAP入门经典源码

    总之,"PHONEGAP入门经典源码"是学习PhoneGap的宝贵资料,通过深入研究源码,不仅可以掌握PhoneGap的基本使用,还能提升跨平台移动开发的实战能力。在实践中不断探索,结合理论学习,相信你可以快速成长为一名熟练的...

    Android和PhoneGap打包本地网站和在线网站

    在移动应用开发领域,Android和PhoneGap是两个重要的技术平台。Android是由Google开发的开源操作系统,主要用于智能手机和平板电脑,而PhoneGap则是一种跨平台的移动应用开发框架,它允许开发者使用HTML、CSS和...

    PhoneGap简单示例

    PhoneGap是一种开源框架,它允许开发者使用HTML5、CSS3和JavaScript来构建原生的移动应用程序。这个"PhoneGap简单示例"是一个基础的学习资源,...这是一个很好的起点,帮助你深入理解PhoneGap的工作原理和开发流程。

Global site tag (gtag.js) - Google Analytics