在android中怎样调用本地js文件里的方法并得到返回值

JavaScript021

在android中怎样调用本地js文件里的方法并得到返回值,第1张

在android中调用本地js文件里的方法并得到返回值其方法如下:

Android中内置了WebKit模块,而该模块的Java层视图类就是WebView,所有需要使用Web浏览器功能的Android都需要创建该视图类对象显示和处理请求的网络资源。目前WebKit支持Http、Https、Ftp和JavaScript请求。下面是在Android中调用JavaScript方法以及如何在js中调用本地方法。

1、在Assets下放一个简单的html文件jstest.html

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html40/strict.dtd">

<HTML>

<HEAD>

<meta name="viewport" content="width=device-width, target-densitydpi=device-dpi" />

<META http-equiv="Content-Type" content="text/htmlcharset=UTF-8">

<script>

function showMsg(){

alert("hello world!")

}

function showMsgInAndroid(){

myjs.showMsg('hello in android!')

}

</script>

</HEAD>

<BODY>

<span>测试js使用</span>

<button id='btntest' onclick='showMsgInAndroid()'>调用android方法</button>

</BODY>

</HTML>

          <body>

              <!-- Calls into the javascript interface for the activity -->

              <!-- 从HTML文件中调用activity中的函数 -->

              <!-- 也就是从HTML到android程序 留意window.demo.clickOnAndroid()这句话 -->

              <a onClick="window.demo.clickOnAndroid()">Click</a>

          </body>

  

mWebView.addJavascriptInterface(new DemoJavaScriptInterface(), "demo")

final class DemoJavaScriptInterface {  

        DemoJavaScriptInterface() {  

        }  

  

        /** 

         * This is not called on the UI thread. Post a runnable to invoke 

         * 

         * loadUrl on the UI thread. 

         * 

         */  

        public void clickOnAndroid() {        // 注意这里的名称。它为clickOnAndroid(),注意,注意,严重注意  

            mHandler.post(new Runnable() {  

                public void run() {  

                      

                    Toast.makeText....  

                }  

            })  

        }  

    }