WebView加载本地Html文件并实现点击效果

Webview是用来与前端交互的纽,可以加载本地Html文件,和网页并实现交互的功能。

WebView通过WebSetting可以使用Android原生的JavascriptInterface来进行js和java的通信。

加载本地文件:webView.loadUrl("file:///android_asset/xxx.html");

加载网页:webView.loadUrl("http://baidu.com");

案例:(WebView加载本地Html并实现与JS通信) 效果图:

代码:

/***
 *
 * WebView加载本地文件和实现JS点击效果
 *
 * @author zq
 *
 */
public class MainActivity extends Activity {

    private WebView webView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_main);
          initView();

    }
    private void initView() {
        // TODO Auto-generated method stub
          // 获取webview控件
            webView = (WebView) findViewById(R.id.activity_webview);
            // 获取WebView的设置
            WebSettings webSettings = webView.getSettings();
            // 将JavaScript设置为可用,这一句话是必须的,不然所做一切都是徒劳的
            webSettings.setJavaScriptEnabled(true);
            // 给webview添加JavaScript接口
            webView.addJavascriptInterface(new JsInterface(), "control");
            // 通过webview加载html页面
            webView.loadUrl("file:///android_asset/l.html");
    }

    public class JsInterface {
        @JavascriptInterface
        public void showToast(String toast) {
            Toast.makeText(MainActivity.this, toast, Toast.LENGTH_SHORT).show();
        }

        public void log(final String msg) {
            webView.post(new Runnable() {

                @Override
                public void run() {
                    webView.loadUrl("javascript log(" + "‘" + msg + "‘" + ")");

                }
            });
        }
    }

}

JS文件

 function showToast(toast) {
    javascript:control.showToast(toast);
        }
  function log(msg) {
        consolse.log(msg);
    }

AndroidManifest.xml 中加权限

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>  

代码未完全给出,要源码直接下载即可

源码下载:http://download.csdn.net/detail/dickyqie/9710928

时间: 2024-10-12 22:59:04

WebView加载本地Html文件并实现点击效果的相关文章

iOS WebView 加载本地资源(图片,文件等)

NSString *path = [[NSBundle mainBundle] pathForResource:@"关于.docx" ofType:nil]; NSURL *url = [NSURL fileURLWithPath:path]; NSLog(@"%@", [self mimeType:url]); //webview加载本地文件,可以使用加载数据的方式 //第一个诶参数是一个NSData, 本地文件对应的数据 //第二个参数是MIMEType //第

【Android开发经验】使用WebView加载本地图片出现闪屏的解决方法

转载请注明出处:http://blog.csdn.net/zhaokaiqiang1992 问题描述 运行环境 解决方案 问题描述 使用WebView加载本地图片的时候,也就是一段HTML代码嵌入本地的图片地址的形式,会出现短暂的灰色的闪烁,然后就可以正常显示图片了,WebView的背景颜色在xml中设置为黑色. 同时,出现这个问题的时候,Log会打印报错信息:nativeOnDraw failed; clearing to background color. 运行环境 nexus5 Andro

安卓 WebView加载本地图片时居中显示

在一个项目中使用WebView显示gif图片(自定义的View无法放大gif),当图片过小时只在左侧显示,经过研究发现无论设置android:layout_gravity="center_horizontal"还是设置android:gravity="center_horizontal" 都无法居中显示,而且还设置了android:layout_width="wrap_content",但是实际上WebView并没有自适应内容,它的宽度占了屏幕宽

UIWebView加载本地HTML文件

写本文的原因是今天被要求「调研在iOS中加载本地HTML的相关技术」,好记性不如烂笔头,将一些东西给记录下来吧. 应用场景是这样的:手头的iOS App有一部分UI需要使用HTML完成,好处是这部分UI可以更灵活,即可以在任何不需要升级App的情况下更新这部分UI(包括样式.操作等等).当下非常火的技术 – Facebook的React Native – 正是用来解决这种问题的,毕竟在传统的开发模式下,更新UI必须要升级App,而升级App是一个非常耗时的过程.使用Web App部分代替Nati

iOS之webview加载网页、文件、html的方法

UIWebView  是用来加载加载网页数据的一个框.UIWebView可以用来加载pdf.word.doc 等等文件 生成webview 有两种方法,1.通过storyboard 拖拽  2.通过alloc init 来初始化 创建webview,下列文本中 _webView.dataDetectorTypes = UIDataDetectorTypeAll; 是识别webview中的类型,例如 当webview中有电话号码,点击号码就能直接打电话 - (UIWebView *)webView

Android WebView加载本地html并实现Java与JS交互

最近做的一个项目中,用到自定义地图,将自定义地图转换成html页面,现在需要做的是如何将本地的html加载到android中,并可以实现交互. 相关讲解: 其实webview加载资源的速度并不慢,但是如果资源多了,当然就很慢.图片.css .js .html这些资源每个大概需要10-200ms ,一般都是30ms就ok了.不过webview是必须等到全部资源都完成加载,才会进行渲染的,所以加载的速度很重要!从Google上我们了解到,webview加载页面的顺序是:先加载html,然后从里面解析

webView 加载本地html css javascript文件路径尝试

一:UIWebView加载数据的方式有三种: 1:- (void)loadRequest:(NSURLRequest *)request NSString * path = [[NSBundle mainBundle] pathForResource:@"demoFolder" ofType:@"html"]; NSURL *url = [NSURL URLWithString:path]; [self.webView1 loadRequest:[NSURLRequ

JavaEE SSH框架整合(二) struts2 加载本地dtd文件,action配置

1. 加载struts2的dtd文件,使struts.xml不用联网就能验证,并在eclipse中有提示 在src下创建struts.xml: <?xmlversion="1.0"encoding="UTF-8"?> <!DOCTYPE strutsPUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://strut

如何让Chrome浏览器可以加载本地XML文件?

Chrome浏览器的安全限制,禁止本地加载XML等外部文件,如何设置让其可以加载呢? 有两种方法,第一种是在本地服务器环境下浏览,采用 http://localhost/ 的方式浏览你的网页和文件,就 Chrome浏览器的安全限制,禁止本地加载XML等外部文件,如何设置让其可以加载呢? 有两种方法, 第一种是在本地服务器环境下浏览,采用http://localhost/的方式浏览你的网页和文件,就不再有本地安全限制的问题了. 第二种方法,采用设置参数方式来启动Chrome浏览器. 在已安装的Ch