android 使用html做应用程序界面初探
16lz
2021-01-23
android 使用html做应用程序界面初探
以前做毒霸极速版、网盾客户端都使用过网页做界面。所以对于这种模式我是情有独钟,而android 中的webview组件带的可是webkit内核,V8 脚本引擎啊,HTML5 啊,如果用这个做一些在线应用的界面,应该会是一个不错的选择吧。虽然android 写界面已经很简单了(相比5年前用Java Swing 写GUI 的痛苦记忆),但是在线的网页自然有在线的好处。而且HTML5 的离线存储功能也不错。说了一堆废话,对不起。
首先建立工程,使用webview 组件。
demo 代码核心部分:
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mWebView=(WebView) this.findViewById(R.id.webview);
mHandler= newHandler();
WebSettingswebSettings=mWebView.getSettings();
webSettings.setJavaScriptEnabled( true);
mWebView.addJavascriptInterface( newObject(){
public voidclickOnAndroid(){
mHandler.post( newRunnable(){
public voidrun(){
mWebView.loadUrl("javascript:wave()");// 调用脚本函数
}
});
}
},"demo"); // 为脚本函数提供了接口 ,window.demo.clickOnAndroid()
mWebView.loadUrl("file:///android_asset/html/notice.html");
有几点需要注意的地方:
(1)如果应用需要访问上网,在AndroidManifest.xml 中加入:
以前做毒霸极速版、网盾客户端都使用过网页做界面。所以对于这种模式我是情有独钟,而android 中的webview组件带的可是webkit内核,V8 脚本引擎啊,HTML5 啊,如果用这个做一些在线应用的界面,应该会是一个不错的选择吧。虽然android 写界面已经很简单了(相比5年前用Java Swing 写GUI 的痛苦记忆),但是在线的网页自然有在线的好处。而且HTML5 的离线存储功能也不错。说了一堆废话,对不起。
首先建立工程,使用webview 组件。
demo 代码核心部分:
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mWebView=(WebView) this.findViewById(R.id.webview);
mHandler= newHandler();
WebSettingswebSettings=mWebView.getSettings();
webSettings.setJavaScriptEnabled( true);
mWebView.addJavascriptInterface( newObject(){
public voidclickOnAndroid(){
mHandler.post( newRunnable(){
public voidrun(){
mWebView.loadUrl("javascript:wave()");// 调用脚本函数
}
});
}
},"demo"); // 为脚本函数提供了接口 ,window.demo.clickOnAndroid()
mWebView.loadUrl("file:///android_asset/html/notice.html");
有几点需要注意的地方:
(1)如果应用需要访问上网,在AndroidManifest.xml 中加入:
<uses-permission android:name="android.permission.INTERNET"/>
(2)代码中android_asset 相当于 工程路径中:assets 目录下的资源。
(3)setJavaScriptEnabled 是设置是否允许使用javascript脚本,一定要打开。
(4)在 layout 下main.xml 中,<WebViewandroid:id="@+id/webview"android:layout_width="fill_parent“ android:layout_height="wrap_content"/>
顺利的完成该demo ,该demo 中主要就两个点:1。使用了网页做界面,2。实现了JavaScript 与 Java 的互相调用。
更多相关文章
- Android UI常用实例 如何实现欢迎界面(Splash Screen)
- Android中使用Thread+Handler实现非UI线程更新UI界面
- Android界面设计的4种方式之二——在Java代码中控制UI界面
- Android的界面元素UI
- [Android UI界面] 转:学习Android界面设计的超级利器HierarchyVie
- Freescale IMX6 Android (7): Android启动动画死循环 Home界面不
- Android的WebView控件载入网页显示速度慢的究极解决方案