设为首页 加入收藏

TOP

Android之webview详解(非原创)(二)
2019-09-01 23:12:42 】 浏览:109
Tags:Android webview 详解 原创
信息(输入信息对话框,有一个输入框,还有确认、取消两个按钮) //defaultValue:输入框中的默认信息 //result:向网页中的java script代码反馈本次操作结果(result.confirm代表点击了确定按钮,result.cancel代表点击了取消按钮) public boolean onJsPrompt(WebView view, String url, String message,String defaultValue, JsPromptResult result)

下面给出一个简单的处理方案,可以作为参考:

@Override public boolean onJsAlert(WebView view, String url, String message, final JsResult result) { new AlertDialog.Builder(MainActivity.this) .setTitle("JsAlert") .setMessage(message) .setPositiveButton("确定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { result.confirm(); } }) .setCancelable(false) .show(); return true; } @Override public boolean onJsConfirm(WebView view, String url, String message, final JsResult result) { new AlertDialog.Builder(MainActivity.this) .setTitle("JsConfirm") .setMessage(message) .setPositiveButton("确定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { result.confirm(); } }) .setNegativeButton("取消", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { result.cancel(); } }) .setCancelable(false) .show(); return true; } @Override public boolean onJsPrompt(WebView view, String url, String message, String defaultValue, final JsPromptResult result) { final EditText editText=new EditText(MainActivity.this); editText.setText("默认数据");//设置默认数据 new AlertDialog.Builder(MainActivity.this) .setTitle("JsPromt") .setView(editText)//为弹出窗口设置输入框 .setPositiveButton("确定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { result.confirm(editText.getText().toString());//向java script传递输入值 } }) .setNegativeButton("取消", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { result.cancel(); } }) .setCancelable(false) .show(); return true; } 

二、webview高级使用

1.WebView状态

//激活WebView为活跃状态,能正常执行网页的响应 webView.onResume() ; //当页面被失去焦点被切换到后台不可见状态,需要执行onPause //通过onPause动作通知内核暂停所有的动作,比如DOM的解析、plugin的执行、java script执行。 webView.onPause(); //当应用程序(存在webview)被切换到后台时,这个方法不仅仅针对当前的webview而是全局的全应用程序的webview //它会暂停所有webview的layout,parsing,java scripttimer。降低CPU功耗。 webView.pauseTimers() //恢复pauseTimers状态 webView.resumeTimers(); //销毁Webview //在关闭了Activity时,如果Webview的音乐或视频,还在播放。就必须销毁Webview //但是注意:webview调用destory时,webview仍绑定在Activity上 //这是由于自定义webview构建时传入了该Activity的context对象 //因此需要先从父容器中移除webview,然后再销毁webview: rootLayout.removeView(webView); webView.destroy(); 

2.资源加载

??WebView可以加载多种资源,包括本地资源和远程资源,同时也有多种用于加载资源的方法。
加载assets中的资源

??新建assets文件夹,再新建.html文件

 

在Activity中添加以下代码:

webView.loadUrl("file:///android_asset/test.html");//加载本地assets文件夹下的资源 

加载res中的资源

webView.loadUrl(``"[file:///android_res/mipmap/ic_launcher.png](file:///android_res/mipmap/ic_launcher.png)"``);//加载本地res文件夹下的图片 webView.loadUrl(``"[file:///android_res/raw/ic_launcher.png](file:///android_res/raw/ic_launcher.png)"``);//加载本地res文件夹下raw文件夹下的图片 webView.loadUrl(``"[file:///android_res/raw/test.html](fil
首页 上一页 1 2 3 4 5 6 下一页 尾页 2/6/6
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Android中资源的引用 下一篇react native中使用echarts

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目