最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

4.WebView与javascript相互调用

来源:动视网 责编:小OO 时间:2025-10-03 09:53:31
文档

4.WebView与javascript相互调用

1.4WebView与javascript相互调用(3课时)1.4.1Java中调用javascript方法[掌握]1.4.2javascript调用Java方法[掌握]第一:Java中调用javascript方法1.android中利用webview调用网页上的js代码。Android 中可以通过webview来实现和js的交互,在程序中调用js代码,只需要将webview控件的支持js的属性设置为true,然后通过loadUrl就可以直接进行调用,如下所示:mWebView.getSett
推荐度:
导读1.4WebView与javascript相互调用(3课时)1.4.1Java中调用javascript方法[掌握]1.4.2javascript调用Java方法[掌握]第一:Java中调用javascript方法1.android中利用webview调用网页上的js代码。Android 中可以通过webview来实现和js的交互,在程序中调用js代码,只需要将webview控件的支持js的属性设置为true,然后通过loadUrl就可以直接进行调用,如下所示:mWebView.getSett
1.4  WebView与javascript相互调用    (3课时) 

    1.4.1 Java中调用javascript方法[掌握]

1.4.2 javascript调用Java方法    [掌握]

第一:Java中调用javascript方法

1.android中利用webview调用网页上的js代码。

Android 中可以通过webview来实现和js的交互,在程序中调用js代码,只需要将webview控件的支持js的属性设置为true,然后通过loadUrl就可以直接进行调用,如下所示:

mWebView.getSettings().setJavaScriptEnabled(true);

mWebView.loadUrl("javascript:test()");

    android:layout_width="match_parent"

    android:layout_height="match_parent"

android:orientation="vertical" >

    android:id="@+id/webview2"

    android:layout_width="match_parent"

    android:layout_height="match_parent"

/>

import org.json.JSONArray;

import org.json.JSONException;

import org.json.JSONObject;

import android.app.Activity;

import android.os.Bundle;

import android.os.Handler;

import android.webkit.WebView;

public class JSandJavaActivity extends Activity {

    

     WebView webView= null;

     Handler handler = new Handler();//进行异步通讯

        @Override

        public void onCreate(Bundle savedInstanceState) {

            super.onCreate(savedInstanceState);

            setContentView(R.layout.webview_androidcalljs);

            webView = (WebView) this.findViewById(R.id.webview2);

          //只有设为true才能与javascript进行通讯

            webView.getSettings().setJavaScriptEnabled(true);

          //让javascript能调用java中的方法

            webView.addJavascriptInterface(new Object(){

             public void show(){

              handler.post(new Runnable(){

         @Override

         public void run() {

          //webView.loadUrl("javascript:pageini()");

          webView.loadUrl("javascript:personlist('"+query()+"')");//调用javascript函数

         }

              });

             }

            }, "caller");

            String path="file:///android_asset/androidcalljs.html";

            webView.loadUrl(path);//载入页面

        }

        

        public static String query(){//构造json对象

         JSONArray array = null;

      try {

       JSONObject object = new JSONObject();

       object.put("id", 1);

       object.put("name

       object.put("age", 23);

       object.put("address", "HZ");

       

       JSONObject object2 = new JSONObject();

       object2.put("id", 2);

       object2.put("name

       object2.put("age", 24);

       object2.put("address", "SH");

       

       array = new JSONArray();

       array.put(object);

       array.put(object2);

      } catch (JSONException e) {

       // TODO Auto-generated catch block

       e.printStackTrace();

      }

         return array.toString();

        }

    }

Html:

android调用javascript

idnameageaddress

第二:javascript中调用方法Java

2. 网页上调用android中java代码的方法

在网页中调用java代码,需要在webview控件中添加javascriptInterface。如下所示:

mWebView.addJavascriptInterface(new Object() { 

            public void clickOnAndroid() { 

                mHandler.post(new Runnable() { 

                    public void run() { 

                        Toast.makeText(Test.this, "测试调用java", Toast.LENGTH_LONG).show();

                    } 

                }); 

            } 

        }, "demo");

在网页中,只需要像调用js方法一样,进行调用就可以

b.c

    android:orientation="vertical"

    android:layout_width="match_parent"

    android:layout_height="match_parent"

>

    android:id="@+id/webview"

    android:layout_width="match_parent"

    android:layout_height="match_parent"

/>

import android.app.Activity;

import android.os.Bundle;

import android.view.View;

import android.webkit.WebSettings;

import android.webkit.WebView;

public class WebViewJavaScriptDemo extends Activity 

{

    WebView myWebView;

    @Override

    public void onCreate(Bundle savedInstanceState) 

    {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.webview_jscallandroid);

        myWebView = (WebView) findViewById(R.id.webview);

        // 此处为了简化编程,使用file协议加载本地assets目录下的HTML页面

        // 如果有需要,也可使用http协议加载远程网站的HTML页面。

        myWebView.loadUrl("file:///android_asset/jscallandroid.html");

        // 获取WebView的设置对象

        WebSettings webSettings = myWebView.getSettings();

        // 开启JavaScript调用

        webSettings.setJavaScriptEnabled(true);

        // 将MyObject对象暴露给JavaScript脚本

        // 这样test.html页面中的JavaScript可以通过myObj来调用MyObject的方法

        myWebView.addJavascriptInterface(new MyObject(this), "myObj");

    }

}

Js调用Android

    onclick="myObj.showToast('孙悟空');" />

onclick="myObj.showList();" />    

import android.app.AlertDialog;

import android.content.Context;

import android.widget.Toast;

public class MyObject{

    Context mContext;

    MyObject(Context c){

        mContext = c;

    }

    // 该方法将会暴露给JavaScript脚本调用

    public void showToast(String name)

    {

        Toast.makeText(mContext, name + ",您好!", Toast.LENGTH_LONG).show();

    }

    // 该方法将会暴露给JavaScript脚本调用

    public void showList()

    {

        // 显示一个普通的列表对话框

        new AlertDialog.Builder(mContext)

            .setTitle("图书列表")

            .setIcon(R.drawable.ic_launcher)

            .setItems(new String[]{"Java讲义"

            , "Android讲义" , "轻量级Java EE企业应用实战"} , null)

            .setPositiveButton("确定", null)

            .create()

            .show();

    }

}

文档

4.WebView与javascript相互调用

1.4WebView与javascript相互调用(3课时)1.4.1Java中调用javascript方法[掌握]1.4.2javascript调用Java方法[掌握]第一:Java中调用javascript方法1.android中利用webview调用网页上的js代码。Android 中可以通过webview来实现和js的交互,在程序中调用js代码,只需要将webview控件的支持js的属性设置为true,然后通过loadUrl就可以直接进行调用,如下所示:mWebView.getSett
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top