博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android中webView与javascript交互
阅读量:5337 次
发布时间:2019-06-15

本文共 2334 字,大约阅读时间需要 7 分钟。

主要是通过addJavaScipteInterface(Object obj,String Interfacename) 方法将一个java对象绑定到一个javaScipte对象中,javaScripte对象名就是interfaceName

package com.king.android.net;
import android.app.Activity;
import android.os.Bundle;
import android.webkit.WebView;
import com.king.android.R;
/**
 * 描述:webview与js互用
 * 作者:Andy.Liu
 * 时间: 2012-7-26  上午08:24:06
 *
*/
public 
class WebAndJsActivity 
extends Activity {
    
private WebView mWebView = 
null;
    
private PersonalData mPersonalData;        
//
保存数据
    
    @Override
    
protected 
void onCreate(Bundle savedInstanceState) {
        
        
super.onCreate(savedInstanceState);
        
        setContentView(R.layout.webview_layout);
        mPersonalData = 
new PersonalData();
        mWebView = (WebView) findViewById(R.id.wv_view);
        mWebView.getSettings().setJavaScriptEnabled(
true);
        
//
把本类的一个实例添加到javascript全局对象window中,这样就可以使用windowPersonData来调用它的方法
        mWebView.addJavascriptInterface(
this, "PersonalData");
        
//
加载网页
        mWebView.loadUrl("file://android_asset/PersonalData.html");
    }
    
    
public PersonalData getPersonalData(){
        
return mPersonalData;
    }
    
//
js脚本中调用显示的资料
    
class PersonalData
    {
        String  mID;
        String  mName;
        String  mAge;
        String  mBlog;    
        
public PersonalData()
        {
            
this.mID="123456789";
            
this.mName="Android";
            
this.mAge="100";
            
this.mBlog="http://xxx.javaeye.com";
        }
        
public String getID()
        {
            
return mID;
        }
        
public String getName()
        {
            
return mName;
        }
        
public String getAge()
        {
            
return mAge;
        }
        
public String getBlog()
        {
            
return mBlog;
        }
    }

}

js脚本:window.οnlοad= function(){

    
var personaldata = window.PersonalData.getPersonalData();
    
if(personaldata)
    {
        
var Personaldata = document.getElementById("Personaldata");
    pnode = document.createElement("p");
        tnode = document.createTextNode("ID:" + personaldata.getID());
        pnode.appendChild(tnode);
        Personaldata.appendChild(pnode);
    pnode = document.createElement("p");
        tnode = document.createTextNode("Name:" + personaldata.getName());
        pnode.appendChild(tnode);
        Personaldata.appendChild(pnode);
    pnode = document.createElement("p");
        tnode = document.createTextNode("Age:" + personaldata.getAge());
        pnode.appendChild(tnode);
        Personaldata.appendChild(pnode);
    pnode = document.createElement("p");
        tnode = document.createTextNode("Blog:" + personaldata.getBlog());
        pnode.appendChild(tnode);
        Personaldata.appendChild(pnode);
    }    

 

  当然java代码中也可以直接调用js方法,这样就可以互相调用取得数据。

webView.loadUrl("javascpite:方法名()"); 

 

转载于:https://www.cnblogs.com/liuzenglong/archive/2012/07/26/2609348.html

你可能感兴趣的文章
Yii2 CSRF
查看>>
高德地图接口测试地址
查看>>
shell 获取不同目录下指定文件,并把文件复制到一个文件夹下面
查看>>
hdu-3790最短路刷题
查看>>
微信小程序开发技巧总结 (一)-- 数据传递和存储
查看>>
Java基础编程题——分别统计出其中汉字、英文字母、空格、数字和其它字符的个数...
查看>>
物理机以及不同的虚拟机的转换方法
查看>>
express get和post方法
查看>>
关于日历实现代码里lunarInfo(农历)数组
查看>>
【转】winrar命令行详解
查看>>
#!/usr/bin/python3 和 #!/usr/bin/env python3的区别
查看>>
AWK中的OFS的问题
查看>>
带你彻彻底底弄懂Scroller
查看>>
前端开发 Web SQL Database
查看>>
待解谜题(持续更新)
查看>>
python操作数据库产生中文乱码问题【已解决】
查看>>
母版页中引用图片,外部js、css文件的路径问题 [转]
查看>>
微信小程序_(组件)组件基础
查看>>
原生Js_制作简易日历
查看>>
2015年10月14日学习笔记
查看>>