PhoneGap 07 Android WebViews介绍

这一部分内容介绍怎样在一个android应用程序中插入一个WebView组件,关于这些组件之间怎么交互的问题,请参考应用程序插件一节。

如果你对android开发不熟悉,你可以先看看PhoneGap 05 Android平台向导的介绍,在开始手动编写之前,必须安装最新的Android SDK,从Cordova 1.9版本开始,Android平台依赖于CordovaWebView组件,它建立在先前版本的惰性CordovaActivity之上。

  1. 做接下来的步骤之前,必须确保你已经有了Cordova的最新版本,解压缩它的android包;
  2. 打开到android包的/framework目录,并且运行ant.jar,在eclipse中运行产生Cordova.jar,将其存入/framework/cordova-3.3.0.jar;
  3. 复制jar文件到android项目的libs目录
  4. 增加如下所示的应用程序布局文件 /res/xml/mail.xml。英文原文少了一行android域的声明, 其属性如下:
    <org.apache.cordova.CordovaWebView 
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/tutorialView"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
        
    </org.apache.cordova.CordovaWebView>
  5. 修改主Activity文件,使其实现CordovaInterface接口。其实有两种选择,一种选择就是直接复制/framework/src/org/apache/cordova/CordovaActivity.java里面的相关函数实现,一种方式就是完全由自己实现,不过自己实现的难度还是有一点大的,建议如果实在想自己实现,也在例子的基础上面去实现。一般的Activity是像下面这样:
     CordovaWebView cwv;  
        /* Called when the activity is first created. */  
        @Override  
        public void onCreate(Bundle savedInstanceState) {  
            super.onCreate(savedInstanceState);  
            setContentView(R.layout.main);  
            cwv = (CordovaWebView) findViewById(R.id.tutorialView);  
            Config.init(this);  
            cwv.loadUrl(Config.getStartUrl());  
        }

  6. 如果应用程序需要摄像机,需要像下面这样实现:
    @Override
    	public void setActivityResultCallback(CordovaPlugin plugin) {
    		this.activityResultCallback = plugin;
    		
    	}
    
    	@Override
    	public void startActivityForResult(CordovaPlugin command, Intent intent, int requestCode) {
    		this.activityResultCallback = command;
    		this.activityResultKeepRunning = this.keepRunning;
    		
    		if (command != null) {
    			this.keepRunning = false;
    		}
    		
    		super.startActivityForResult(intent, requestCode);
    	}
    	
    	@Override
    	protected void onActivityResult(int requestCode, int resultCode, Intent intent){
    		super.onActivityResult(requestCode, resultCode, intent);
    		
    		CordovaPlugin callback = this.activityResultCallback;
    		if (callback != null) {
    			callback.onActivityResult(requestCode, resultCode, intent);
    		}
    	}

  7. 最后,记得加上下面这句话哦,不然你的插件就没有地方给他运行咯
    @Override
    public ExecutorService getThreadPool() {
        return threadPool;
    }

  8. 复制应用程序的javascript和html文件到项目文件夹下面的 /assets/www目录
  9. 从/framework/res/xml下面复制config.xml到项目文件夹下面的/res/xml目录下面

原文链接: Android WebView

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值