这一部分内容介绍怎样在一个android应用程序中插入一个WebView组件,关于这些组件之间怎么交互的问题,请参考应用程序插件一节。
如果你对android开发不熟悉,你可以先看看PhoneGap 05 Android平台向导的介绍,在开始手动编写之前,必须安装最新的Android SDK,从Cordova 1.9版本开始,Android平台依赖于CordovaWebView组件,它建立在先前版本的惰性CordovaActivity之上。
- 做接下来的步骤之前,必须确保你已经有了Cordova的最新版本,解压缩它的android包;
- 打开到android包的/framework目录,并且运行ant.jar,在eclipse中运行产生Cordova.jar,将其存入/framework/cordova-3.3.0.jar;
- 复制jar文件到android项目的libs目录
- 增加如下所示的应用程序布局文件 /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>
- 修改主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()); }
- 如果应用程序需要摄像机,需要像下面这样实现:
@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); } }
- 最后,记得加上下面这句话哦,不然你的插件就没有地方给他运行咯
@Override public ExecutorService getThreadPool() { return threadPool; }
- 复制应用程序的javascript和html文件到项目文件夹下面的 /assets/www目录
- 从/framework/res/xml下面复制config.xml到项目文件夹下面的/res/xml目录下面
原文链接:
Android WebView