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 = getIntent().getStringExtra("urlPath");

WebSettings webSettings = webView.getSettings();

webSettings.setCacheMode(WebSettings.LOAD_NO_CACHE);

// WebView加载web资源

webView.loadUrl(url);

// 从assets目录下面的加载html

// webView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);

webView.addJavascriptInterface(this, "javatojs");

webView.getSettings().setJavaScriptEnabled(true);

webView.setWebViewClient(new WebViewClient() {

@Override

public boolean shouldOverrideUrlLoading(WebView view, String url) {

// 返回值是true的时候控制去WebView打开,为false调用系统浏览器或第三方浏览器

view.loadUrl(url);

return true;

}

@Override

public void onReceivedSslError(WebView view,

SslErrorHandler handler, SslError error) {

// 重写此方法可以让webview处理https请求。

super.onReceivedSslError(view, handler, error);

handler.proceed();

}

@Override

public void onPageStarted(WebView view, String url, Bitmap favicon) {

// 在页面加载开始时调用。

super.onPageStarted(view, url, favicon);

}

@Override

public void onPageFinished(WebView view, String url) {

// 在页面加载结束时调用。

super.onPageFinished(view, url);

}

@Override

public void onReceivedError(WebView view, int errorCode,

String description, String failingUrl) {

// TODO Auto-generated method stub

super.onReceivedError(view, errorCode, description, failingUrl);

webView.setVisibility(View.GONE);

// 返回

ImageView backView = (ImageView) findViewById(R.id.iv_licaike_back);

backView.setVisibility(View.VISIBLE);

backView.setOnClickListener(WebViewActivity.this);

}

@Override

public void onLoadResource(WebView view, String url) {

// 在加载页面资源时会调用,每一个资源(比如图片)的加载都会调用一次。

super.onLoadResource(view, url);

}

});

// 主要处理解析,渲染网页等浏览器做的事情 辅助WebView处理Javascript的对话框,网站图标,网站title,加载进度等

webView.setWebChromeClient(new WebChromeClient() {

@Override

public void onReceivedTitle(WebView view, String title) {

setTitle(title);

}

});

}

@JavascriptInterface   // 这个最好每个H5调用都加,否则有些机型和版本不支持

public void reqDataFromApp() {

webView.loadUrl("javascript:getDataToH5(‘" + "toStr" + "‘)");

}

时间: 2024-10-11 00:38:24

webview与h5交互的相关文章

webview和H5交互

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

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 H5交互Webview实现localStorage数据存储

前言 最近有一个需求是和在app中前端本地存储相关的,所以恶补了一下相关知识 webView开启支持H5 LocalStorage存储 有些时候我们发现写的本地存储没有起作用,那是因为默认WebView没有开启LocalStorage存储.开启方法如下 首先得有Webview控件: 有人问我是不是需要写布局文件,不写行不行,现在我就告诉你们,不写没问题,需要写就写不写直接创建New一个也行. 下面我就介绍一个,我new一个Webview实现localStorage. WebView mywebV

Native与H5交互的一些解决方法

一. 原生代码中直接加载页面 1.    具体案例 加载本地/网络HTML5作为功能介绍页 2.    代码示例 //本地 -(void)loadLocalPage:(UIWebView*)webView { NSString* htmlPath = [[NSBundle mainBundle]pathForResource:@"demo" ofType:@"html"]; NSString* appHtml =[NSString stringWithContent

iOS与H5交互的方案

iOS与H5交互的方案 纵观所有iOS与H5交互的方案,有以下几种: 第一种:有很多的app直接使用在webview的代理中通过拦截的方式与native进行交互,通常是通过拦截url scheme判断是否是我们需要拦截处理的url及其所对应的要处理的功能是什么.任意版本都支持. 第二种:iOS7之后出了JavaScriptCore.framework用于与JS交互,但是不支持iOS6,对于还需要支持iOS6的app,就不能考虑这个了.若需要了解,看最后的推荐阅读. 第三种:WebViewJava

iOS与H5交互

前提:在oc控制器中加载UIWebView,设置代理,遵守UIWebViewDelegate协议. 一.iOS调用JS方法 通过iOS调用JS代码实现起来比较方便直接调用UIWebView的方法- (nullable NSString *)stringByEvaluatingJavaScriptFromString:(NSString *)script; 1.查询标签 // 查询标签      NSString *str = @"var word = document.getElementByI

iOS与H5交互遇到的坑

之前的博客写过使用<JavaScriptCore/JavaScriptCore.h>类来实现与H5的交互,但是在项目中还是遇到了一些不得不踩的坑.在这里将我遇到的问题以及参考网上几位大神的解决方案列举出来,如果有更好的办法,欢迎讨论指正.在阅读本博客前,请参阅我之前的<iOS与H5交互>. 一.在webView中加载H5界面,在此webView中的H5一级界面可以轻松实现oc与js方法互调,但如果在H5界面上进入二级界面,在二级界面中再使用之前方法来交互就会失效.如图:左图为H5一

Android和H5交互-基础篇

hybrid App开发也不是什么新鲜事了,其中native和h5之间的交互则是必不可少的.Android中是如何和H5交互的? 1.webView加载页面 我们都知道在Android中是通过webView来加载html页面的,根据HTML文件所在的位置不同写法也不同: //例如:加载assets文件夹下的test.html页面 mWebView.loadUrl("file:///android_asset/test.html") //例如:加载网页 mWebView.loadUrl(

如何使用AEditor制作一个简单的H5交互页demo

转载自:http://www.alloyteam.com/2015/06/h5-jiao-hu-ye-bian-ji-qi-aeditor-jie-shao/ 本教程演示如何使用AEditor制作一个简单的H5交互页demo: 交互页demo地址: 点击打开H5交互页demo AEditor访问地址: http://aeditor.alloyteam.com Step1:设置页面背景颜色 首先我们设置页面的背景颜色,右击舞台点击“设置背景”: 然后在背景颜色中填上色值rgb(38, 61, 10