大家都知道原生态开发,也就是纯安卓开发,其实一个app还可以与h5 相结合,也就是混合开发,
想必搞android开发的百分之九十多都会知道混合开发,但是我之前做的项目都是原生态开发,不过现在混合开发,也是一个热门。
所以我就在业余时间查看一下混合开发的流程,为以后做混合开发打下一定的基础,希望这篇博客对大家能有多帮助。
有什么不足的地方,还希望大神们多多提点;不多说了,咱们进入主题;
想要做混合开发,肯定离不开webView, 还要对一些html有一些了解,本人之前web端有过一段时间的开发经验,现在在公司做游戏管理后台,对自己也有很多帮助,
针对于webview的知识,我就不再这里过多的叙述了,过客们可以在网上查阅学习一下:
我总结了几种webview与h5之间的调用的案例供大家参考:
一.初始化WebView并且加载网络页面
1.设置支持js脚本语言
webSettings.setJavaScriptEnabled(
true
);
2.支持双击 前提是页面要支持彩显示
webSettings.setUseWideViewPort(
true
);
3.支持缩放按钮 前提要支持才显示
webSettings.setBuiltInZoomControls(
true
);
4.设置客户端 不跳转到默认浏览器中
webView
.setWebViewClient(
new
WebViewClient());
5,加载网络资源
webView
.loadUrl(
"http://atguigu.com/teacher.shtml"
);
6.显示页面
setContentView(webView);
二.在工程main目录下创建 assets目录且加载本地资源
webView
.loadUrl(
"file:///
android_asset
/JavaAndJavaScriptCall.html"
);
三.java调用js
/**
* Java
调用
javaScript
*
@param
numebr
*/
private void
login(String numebr) {
webView
.loadUrl(
"javascript:javaCallJs("
+
"'"
+numebr+
"'"
+
")"
);
setContentView(
webView
);
}
四.js掉android
1.配置js接口
//设置支持js调用java
webView.addJavascripInterface(new AndroidandJSInterface(),"android");
2.实现js接口类
/**
* js
可以调用该类的方法
*/
class
AndroidAndJSInterface{
public void
showToast(){
Toast.
makeText
(JavaAndJSActivity.
this
,
"
我被
js
调用了
"
, Toast.
LENGTH_SHORT
).show();
}
}
3.解决WebView.addJavascriptInterface接口不起作用得两种方法
(1)针对版本改成16
(2)在js接口类得方法上添加@JavascriptInterface 注解
/**
* js
可以调用该类的方法
*/
class
AndroidAndJSInterface{
@JavascriptInterface
public void
showToast(){
Toast.
makeText
(JavaAndJSActivity.
this
,
"
我被
js
调用了
"
, Toast.
LENGTH_SHORT
).show();
}
}
只是简单的使用,不过很受用。总结的虽然不深刻,但是项目中会用到的,学习还是需要日积月累的,每一天积累一点,就是有收获的。