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);
            }
        }
    }

  

时间: 2024-10-06 22:31:47

andriod webview和h5的相关文章

swift禁用webView对H5中数字,链接,日期,地址,电话号码做解析

showWebView.dataDetectorTypes = .None //swift禁用webView对H5中数字,链接,日期,地址,电话号码做解析 其UIDataDetectorTypes属性: static var PhoneNumber: UIDataDetectorTypes { get } // Phone number detection static var Link: UIDataDetectorTypes { get } // URL detection static v

webview与h5交互

android webview与H5的交互 方法无响应 @SuppressLint({ "SetJavaScriptEnabled", "JavascriptInterface" }) protected void onStart() { // TODO Auto-generated method stub super.onStart(); webView = (WebView) findViewById(R.id.webView); String url = ge

webview和H5 清除缓存和缓存文件删除。

webview和H5 清除缓存和缓存文件删除. 缓存请看:http://blog.csdn.net/menglele1314/article/details/45717531 import java.io.File;     import android.app.Activity;  import android.graphics.Bitmap;  import android.os.Bundle;  import android.util.Log;  import android.view.V

9-10【H5混合实战】基于自定义WebView实现H5混合开发-3

封装好了WebView,下面来使用它.Nav里面每个图标点击会跳转到H5的页面. 跳转需要用到Navigator来push一个页面.然后里面使用MaterialPageRoute, 导入WebVIew这个widget 运行测试 点击 点击左侧的按钮可以返回. 点击返回,并没有返回到我们的首页,而是打开了另外一个H5页面 这个H5页面是携程的首页 怎么规避这个问题呢?接下俩就需要扩展我们的WebView来和H5之间进行一个混合. 在我们webView页面加载指定的url的时候.native做一些操

Webview 与h5的交互

步骤:H5代码 <html> <head> <meta charset="UTF-8"> <title>交互Demo</title> <meta content="initial-scale=1.0,user-scalable=no,maximum-scale=1,width=device-width" name="viewport"> </head> <b

android 之 webView 显示h5 执行选择图片或者拍照功能

开发工具是 android studio SDK版本是 4.3实现过程基本是这样h5中调用手机选择文件图片的代码是: <input accept="image/*" capture="camera" id="imgFile" name="imgFile" type="file"> 然后给webView 设置WebChromeClient WebChromeClient 主要处理解析,渲染网页等浏

WebView显示h5图片并点击放大过多后的内存泄漏问题

最近在项目开发中用webview去显示加载h5内容,而h5内容中有一些图片,并且可以点击放大看图.在比较变态的测试方法(点击图片放大,关闭当前界面,再进入,再点击图片放大,大概10次左右)后,会导致图片点击没反映了(其实就是webview内存泄漏了).错误信息如下: 12-02 10:46:19.824: E/Surface(19632): dequeueBuffer failed (Invalid argument) 12-02 10:46:19.824: E/ViewRootImpl(196

android webview处理h5打开本地文件浏览器的功能

这周遇到一个比较棘手的问题,需要在android上边集成h5页面,并且在h5页面上,需要用户能够上传android本地的照片,一开始我以为webview会自动处理掉的,因此没太留意,当真正集成时,才发现,h5界面上传图片无法打开本地android的图库,h5调用的方式是: <input type = "file"/> 通过最为简单的input菜单来选择,于是我就百度了一波,找到了两种比较好的解决方法,一种是h5编写js代码,调用android app实现的函数,来实现打开图

webview和H5交互

由于H5的灵活多变,动态可配的特点,也为了避免冗长 的审核周期,H5页面在app上的重要性正日益突显. iOS应用于H5交互的控件主要是UIWebView及WKWebView WKWebView是14年随iOS8推出的,很好的解决了UIWebView加载速度慢,内存占用大的问题 WebViewJavaScriptBridge是一款轻量级的框架,使用它结合wkwebview能十分方便的实现源生与H5的交互 webviewJavaScrptBridge的基本使用 1.初始化需bind视图 [WebV