关闭

WebView简介

标签: Webview如何加载html代码webview如何显示javascripjvavaScripe如何调用Andro
152人阅读 评论(0) 收藏 举报
分类:
Webview
Webview是用于展示网页的控件,相当于一个浏览器
WebView 的方法:
Void goBack();//后退
Void goForward();//前进
Boolean zoomln();//放大网页
Boolean zoomOut();//缩小网页
1. WebView加载网页的实现方法:
	Void loadUrl(Stirng url);//加载指定url的网页,即给出网页的网址进行加载。
	LoadData(String data,String mimeType,String encoding);//用于加载和显示html代码,可能会产生乱码,第一个参数是需要加载的html代码,第二个参数是指定html的MIME类型html代码可以指定为text/html,第三个参数是html代码所使用的字符集,utf-8
	loadDataWithBaseURl(String baseurl,Stirng data,String mimetype,String encoding,String historyurl);//该方法是上面方法的加强不会产生乱码
	加载网页代码
data指定需要加载的HTML代码。
mimeType指定HTML代码的MIME类型,对于HTML代码可指定为text/html。
encoding指定HTML代码编码所用的字符集。比如指定为GBK
	webview.loadDataWithBaseURl(null,“<html><body><h1>欢迎<h1></body></html>“,”text/html“,”utf-8“,null);

	String html="<img src=\"http://img.wanyx.com/softImg/soft/1650_s.jpg\"><a href=\"http://img.wanyx.com/softImg/soft/1650_s.jpg\"><br></img>\n风景展示</a>";
		showonwebview.loadDataWithBaseURL(null, html, "text/html", "utf-8", null); 

2. webview显示javascripe

WebView showview=(WebView)findViewById(R.id.showview);

WebSettings set=showview.getSettings();//webview的选项控制工具类

set.setJavaScriptEnabled(true);//必须设置,只有设置了这个webview才可以操作javascripe,同样javascripe也才可以操作java方法(若希望javascripe操作Android方法必须通过addjavascripeinterfaceObjectm,String))       

showview.loadUrl("http://m.kuaidi100.com/index_all.html?postid=19371949042");


3.  Webview上显示的javascripe调用Android的方法实现

(1)拿到WebView控件

(2)通过WebView对象拿到其对应的WebSeting

(3)调用webview关联的WebSeting的setJavaScriptEnabled()方法设置Android可以和JavaScripe进行交互

(2)调用webview的addJavaScripeInterface(Object object,String name);

(3)在javaScripe中通过name对象调用Android方法

代码

public classWebViewTestTwo extends Activity {

    @Override

    protected void onCreate(BundlesavedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_webview);

        WebViewshowview=(WebView) findViewById(R.id.showview);

        WebSettingsset=showview.getSettings();

        set.setJavaScriptEnabled(true);

        showview.addJavascriptInterface(new MyObject(WebViewTestTwo.this),"ObjectTest");//ObjectTest是指代MyObject对象,在javaScripe中通过ObjectTest来操作

    }

   

    class MyObject{

        private Contextcontext;

        public MyObject(Contextcontext){

            this.context=context;

        }

        //那个方法可以被javascripe调用就要添加上下面这一行

        @JavascriptInterface

        public void show(String name){

            Toast.makeText(context, name+"javascripe操作Android方法成功", Toast.LENGTH_LONG).show();

        }}}

html代码

<html>

    <body>

        <inpute type="button"value="showToast"onclick="ObjectTest.show("");">//onclick中的代码就是一句java语句,只不过对象名称是java中规定好的对象名称

        </inpute>

    </body>

</html>


参数设置参考:http://blog.csdn.net/anqixing/article/details/42488057

WebView与js的交互:https://juejin.im/post/5924dbf58d6d810058fdde43?utm_source=wechat 

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:19128次
    • 积分:1178
    • 等级:
    • 排名:千里之外
    • 原创:96篇
    • 转载:26篇
    • 译文:3篇
    • 评论:1条
    最新评论