• Android中webView与javascript交互


    主要是通过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.onload= 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:方法名()"); 

  • 相关阅读:
    推荐系统 蒋凡译 第一章 引言 读书笔记
    神经网络与深度学习 邱锡鹏 第5章 卷积神经网络 读书笔记
    神经网络与深度学习 邱锡鹏 第4章 前馈神经网络 读书笔记
    神经网络与深度学习 邱锡鹏 第3章 线性模型 读书笔记
    神经网络与深度学习 邱锡鹏 第2章 机器学习概述 读书笔记
    神经网络与深度学习 邱锡鹏 第1章 绪论 作业
    神经网络与深度学习 邱锡鹏 第1章 绪论 读书笔记
    算法笔记 上机训练实战指南 第13章 专题扩展 学习笔记
    算法笔记 第13章 专题扩展 学习笔记
    算法笔记 上机训练实战指南 第11章 提高篇(5)--动态规划专题 学习笔记
  • 原文地址:https://www.cnblogs.com/liuzenglong/p/2609348.html
Copyright © 2020-2023  润新知