`
longgangbai
  • 浏览: 7325410 次
  • 性别: 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 Beginner’s Guide源码

    本书“Phonegap Beginner’s Guide”旨在引导初学者入门PhoneGap开发,通过源码学习,我们可以更深入地理解其工作原理和应用实践。 1. **PhoneGap环境搭建** 在开始任何开发之前,首先需要安装PhoneGap的开发环境...

    android_phonegap-0.9.5.1.jar

    这里的焦点是“android_phonegap-0.9.5.1.jar”,这是PhoneGap的一个早期版本,对于理解其发展历史和技术原理至关重要。 PhoneGap 0.9.5.1是针对Android平台的一个版本,这个版本的发布标志着PhoneGap在Android生态...

    phonegap:Phonegap Techtalk演示

    PhoneGap使用JavaScript作为主要编程语言,但其底层依赖于Java的Android SDK,因此理解Java基础对调试和优化PhoneGap应用是有帮助的。 在"phonegap-master"这个文件名中,"master"可能指的是GitHub上的主分支,这...

    MoodleMobilePhoneGap:我们的MEC Moodle移动应用程序的PhoneGap版本的存储库

    这个项目基于开源技术PhoneGap,PhoneGap是一个使用HTML5、CSS3和JavaScript开发跨平台移动应用的框架,它允许开发者使用Web技术构建原生应用,而无需深入学习各种操作系统平台的底层细节。 首先,我们要理解...

    ImageFilter:用于为照片创建 Instagram 样式过滤器的 phonegap 插件

    PhoneGap是Cordova的一个品牌名称,两者主要的区别在于PhoneGap提供了更多的服务和工具,而Cordova更专注于底层框架。通过这些技术,开发者可以编写一次代码,运行在多个平台上,极大地提高了开发效率。 ### 2. ...

Global site tag (gtag.js) - Google Analytics