把CordovaWebView嵌入到自己的应用(Embedding WebViews)

本文档详细介绍了如何使用Cordova-Android搭建Android应用开发环境,包括下载安装、配置环境、创建并运行示例工程等步骤。适用于希望利用HTML、CSS和JavaScript开发跨平台移动应用的开发者。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

以下以Android为例。

(1)下载最新版的Cordova-Android
[url=https://github.com/apache/cordova-android/releases]https://github.com/apache/cordova-android/releases[/url]
[color=red]2015/02/04 最新版:cordova-android-3.7.1.zip[/color]

(2)解压到本地C盘后,通过命令行进入C:\cordova-android-3.7.1\framework

(3)执行命令“D:/android-sdk/tools/android update project -p .”
会生成以下两个文件:
[quote]local.properties
proguard-project.txt[/quote]

(4)执行命令 “ant jar”
会build这个Cordova的library工程,生成cordova-3.7.1.jar
[quote]C:\cordova-android-3.7.1\framework\cordova-3.7.1.jar[/quote]

(5)新建一个Android工程“CordovaViewSample”,把cordova-3.7.1.jar拷贝到libs文件夹下。

(6)在res/layout/activity_main.xml文件中加入以下代码
<org.apache.cordova.CordovaWebView
android:id="@+id/tutorialView"
android:layout_width="match_parent"
android:layout_height="match_parent" />


(7)修改Activity,可以参考CordovaActivity.java
/framework/src/org/apache/cordova/CordovaActivity.java

public class MainActivity extends Activity implements CordovaInterface {

private final ExecutorService threadPool = Executors.newCachedThreadPool();

// The webview for our app
protected CordovaWebView appView;

// Plugin to call when activity result is received
protected int activityResultRequestCode;
protected CordovaPlugin activityResultCallback;

protected CordovaPreferences prefs = new CordovaPreferences();
protected Whitelist internalWhitelist = new Whitelist();
protected Whitelist externalWhitelist = new Whitelist();
protected ArrayList<PluginEntry> pluginEntries;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

appView = (CordovaWebView) findViewById(R.id.tutorialView);

internalWhitelist.addWhiteListEntry("*", false);
externalWhitelist.addWhiteListEntry("tel:*", false);
externalWhitelist.addWhiteListEntry("sms:*", false);
prefs.set("loglevel", "DEBUG");

appView.init(this, makeWebViewClient(appView), makeChromeClient(appView),
pluginEntries, internalWhitelist, externalWhitelist, prefs);

appView.loadUrlIntoView("http://m.jd.com/");
}

protected CordovaWebViewClient makeWebViewClient(CordovaWebView webView) {
return webView.makeWebViewClient(this);
}

protected CordovaChromeClient makeChromeClient(CordovaWebView webView) {
return webView.makeWebChromeClient(this);
}

@Override
public Activity getActivity() {
return this;
}

@Override
public ExecutorService getThreadPool() {
return threadPool;
}

@Override
public Object onMessage(String id, Object data) {
if ("exit".equals(id)) {
super.finish();
}
return null;
}

@Override
public void setActivityResultCallback(CordovaPlugin plugin) {
if (activityResultCallback != null) {
activityResultCallback.onActivityResult(activityResultRequestCode, Activity.RESULT_CANCELED, null);
}
this.activityResultCallback = plugin;
}

@Override
public void startActivityForResult(CordovaPlugin command, Intent intent, int requestCode) {
setActivityResultCallback(command);
try {
startActivityForResult(intent, requestCode);
} catch (RuntimeException e) {
activityResultCallback = null;
throw e;
}
}

}


(8)修改AndroidManifest.xml
<uses-permission android:name="android.permission.INTERNET" />


(9)编译安装到手机,如下:
[img]http://dl2.iteye.com/upload/attachment/0107/3479/86d5df64-5cfc-3040-9c37-f3e3e811007d.png[/img]

如果加载assets下的HTML的话,还需要:
[list][*]1)把HTML/Images/JS等文件拷贝到/assets/www下
[*]2)把/framework/res/xml/config.xml拷贝到/res/xml下[/list]

[url=http://cordova.apache.org/docs/en/4.0.0/guide_platforms_android_webview.md.html#Android%20WebViews]http://cordova.apache.org/docs/en/4.0.0/guide_platforms_android_webview.md.html#Android%20WebViews[/url]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值