andriod webview和h5
1.WebBrowserActivity extends BaseActivity
2.setContentView(R.layout.activity_web_html);
<WebView
android:id="@+id/wv_web_browser"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
3.wv_web_browser = (WebView)findViewById(R.id.wv_web_browser);
WebSettings webSet = wv_web_browser.getSettings();
webSet.setJavaScriptEnabled(true);
webSet.setJavaScriptCanOpenWindowsAutomatically(true);
webSet.setLoadsImagesAutomatically(true);
webSet.setSupportZoom(true);
webSet.setLayoutAlgorithm(LayoutAlgorithm.NARROW_COLUMNS);
webSet.setUseWideViewPort(true);
webSet.setLoadWithOverviewMode(true);
webSet.setMixedContentMode(0);
// 设置出现缩放工具
webSet.setBuiltInZoomControls(true);
int sysVersion = VERSION.SDK_INT;
if (sysVersion >= 11) {
webSet.setDisplayZoomControls(false);
} else {
ZoomButtonsController zbc = new ZoomButtonsController(wv_web_browser);
zbc.getZoomControls().setVisibility(View.GONE);
}
// 设置可以访问文件
webSet.setAllowFileAccess(true);
webSet.setCacheMode(WebSettings.LOAD_NO_CACHE);
webSet.setAppCacheEnabled(true);
webSet.setDomStorageEnabled(true);
webSet.setDatabaseEnabled(true);
//通知h5应用状态 通知刷新html
informHtmlReceiver = new InformHtmlReceiver();
IntentFilter informHtmlFilter = new IntentFilter(AppConstants.ACTION_APP_PACKAGENAME_INFORM_HTML);
LocalBroadcastManager.getInstance(WebBrowserActivity.this).registerReceiver(informHtmlReceiver, informHtmlFilter);
// 增加h5与本地交互方法
wv_web_browser.addJavascriptInterface(new HtmlJavascriptInterface(),"jsObj");
wv_web_browser.addJavascriptInterface(new HtmlJavaAlarmInterface(), "mstore");
WebChromeClient wvcc = new WebChromeClient() {
@Override
public void onReceivedTitle(WebView view, String title) {
super.onReceivedTitle(view, title);
if (!TextUtils.isEmpty(title)) {
tv_classify_title.setText(title);
}
}
};
wv_web_browser.setWebChromeClient(wvcc);
/**
* 调用js更新H5,js方法
*/
private class InformHtmlReceiver extends BroadcastReceiver{ @Override
public void onReceive(Context context, Intent intent) {
final String packageName = intent.getStringExtra("packagename");
String state = intent.getStringExtra("state");
wv_web_browser.loadUrl("javascript:callDownState('" + packageName +"','"+state+ "')");
}
}
public class HtmlJavaAlarmInterface {
/**
* 点击添加
*
* @param apps_json
*/
@JavascriptInterface
public void setAlarm(final String endTime, final String title, final String content) { if (CalendarUtil.tranceLong(endTime) != 0) {
CalendarUtil.setAlarm(WebBrowserActivity.this, CalendarUtil.tranceLong(endTime), title, content);
}
}
}
andriod webview和h5的更多相关文章
- swift禁用webView对H5中数字,链接,日期,地址,电话号码做解析
showWebView.dataDetectorTypes = .None //swift禁用webView对H5中数字,链接,日期,地址,电话号码做解析 其UIDataDetectorTypes属性 ...
- android:如何通过chrome远程调试APP中的webView的h5代码
今天出现一个问题,在老板的Mate9 Pro上,我们APP的所有H5页面都是一片空白,但是在其他手机上都是好的,那么我们就怀疑是h5报错了,但是到底是什么错,无法得知,所以就想要可以像在pc的chro ...
- Android中WebView与H5的交互,Native与JS方法互调
项目中经常用到WebView与H5的交互,一个是H5调本地方法,一个是本地调H5方法,在此记录一下. 首先,启用JS支持 //启用js支持 webSettings.setJavaScriptEnabl ...
- Android WebView与H5联调技巧
版权声明:本文为xing_star原创文章,转载请注明出处! 本文同步自http://javaexception.com/archives/78 背景: 突然想写一篇关于Android WebView ...
- Webview 与h5的交互
步骤:H5代码 <html> <head> <meta charset="UTF-8"> <title>交互Demo ...
- Webview之H5页面调用android的图库及文件管理
h5页面打开图片管理器 一般页面在pc打开文件管理器是用 type="file"的代码,可是这在android的webview是无效的,必须为webview设定WebChromeC ...
- 解决vue在ios或android中用webview打开H5链接时#号后面的参数被忽略问题angular同样适用
在ios或android如果直接用webview在打开H5链接例如: 打开:http://localhost:8080/#/answer?id=1509335039582001 会变成 http:// ...
- 微信小程序web-view(webview) 嵌套H5页面 唤起微信支付的实现方案
场景:小程序页面有一个web-view组件,组件嵌套的H5页面,要唤起微信支付. 先讲一下我的项目,首先我是自己开发的一个H5触屏版的商城系统,里面含有购物车,订单支付等功能.然后刚开始,我们公众号里 ...
- android webview处理h5打开本地文件浏览器的功能
这周遇到一个比较棘手的问题,需要在android上边集成h5页面,并且在h5页面上,需要用户能够上传android本地的照片,一开始我以为webview会自动处理掉的,因此没太留意,当真正集成时,才发 ...
随机推荐
- FineUIMvc随笔(1)动态创建表格列
声明:FineUIMvc(基础版)是免费软件,本系列文章适用于基础版. <FineUIMvc随笔>目录 FineUIMvc随笔(1)动态创建表格列 FineUIMvc随笔(2)怎样在控件中 ...
- 02 Django REST Framework 序列化
01-创建序列化类 # 方式一: publish_list = models.Publish.objects.all() # 导入序列化组件 from django.core import seria ...
- Python中的 sort 和 sorted
今天在做一道题时,因为忘了Python中sort和sorted的用法与区别导致程序一直报错,找了好久才知道是使用方法错误的问题!现在就大致的归纳一下sort和sorted的用法与区别 1. sort: ...
- WMI测试器
WMI是... 来自百度百科:WMI(Windows Management Instrumentation,Windows 管理规范)是一项核心的 Windows 管理技术:用户可以使用 WMI 管理 ...
- [蓝桥杯]2013蓝桥省赛B组题目及详解
/*——————————————————————————————————————————————————————————— 题目:2013 高斯日记T-1 问题描述: 大数学家高斯有一个好习惯:无论如 ...
- [转帖][超级少儿不宜]一氧化氮(NO),为什么亚洲人是最硬
阴茎科学:一氧化氮(NO),为什么亚洲人是最硬 尼堪巴图鲁 关注他 2,911 人赞同了该文章 https://zhuanlan.zhihu.com/p/55941740 超级少儿不宜.. ...
- Django(八)上:Model操作和Form操作
↑↑↑点上面的”+”号展开目录 Model和Form以及ModelForm简介 Model操作: 创建数据库表结构 操作数据库表 做一部分的验证 Form操作: 数据验证(强大) ModelForm ...
- Magento 2 自带模态的应用
Modal widget in Magento 2 Magento 2 自带模态的应用 使用magento 2 的自带模态组件,以下代码只供参考使用. 1,DOM >模态块与触发元素 .pthm ...
- <Android基础> (六) 数据存储 Part 3 SQLite数据库存储
6.4 SQLite数据库存储 SQLite是一种轻量级的关系型数据库,运算速度快,占用资源少. 6.4.1 创建数据库 Android为了管理数据库,专门提供了SQLiteOpenHelper帮助类 ...
- 利用反射将IDataReader读取到实体类中效率低下的解决办法
最开始使用反射一个类型的各个属性,对气进行赋值的代码如下: public static List<T> ToList<T>(IDataReader reader) { //实例 ...