返回顶部
首页 > 资讯 > 移动开发 >android中WebView和javascript实现数据交互实例
  • 932
分享到

android中WebView和javascript实现数据交互实例

数据webviewJavaScriptAndroid 2022-06-06 10:06:59 932人浏览 独家记忆
摘要

在看懂这篇文章之前首先要有javascript基础。 (1) js调用Android的方法: 代码如下:WEBView wView; wView. addJavascript

在看懂这篇文章之前首先要有javascript基础。

(1) js调用Android的方法:
代码如下:WEBView wView;
wView. addJavascriptInterface (Object obj, String interfaceName);
是实例化一个对象,在html的js中调用,第二个参数是实例化对象的别名,如果要使用这个obj,则在js中使用的名字
就是interfaceName。
代码如下:public class jsWebDemo extends Activity {  
    WebView wView;

     
    @Override 
    public void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.main);   
        wView = (WebView)findViewById(R.id.wv1);  
          
       WebSettings wSet = wView.getSettings();  
        wSet.setJavaScriptEnabled(true); 

        ProxyBridge pBridge = new ProxyBridge();  
        wView.addJavascriptInterface(pBridge, "AliansBridge");  
        
        wView.loadUrl("file:///android_asset/index.html");  
          
    }  
 
 private class ProxyBridge {  
  public int one () {  
   return 1;  
  }  
 }  
 
}
来看一下index.html的内容:
  代码如下:
<html>
  <mce:script language="javascript"><!--
 
          
        function wave() {  
            alert("1");  
            document.getElementById("droid").src="android_waving.png";  
            alert("2");  
        }  
   
// --></mce:script>
<body>     
<div id="output">Test page.</div>     

<a onClick="window.demo.clickOnAndroid()">
 <div style="width:100px;  
            margin:0px auto;  
            padding:10px;  
            text-align:center;  
            border:2px solid #202020;" > 
                <img id="droid" src="android_nORMal.png" mce_src="android_normal.png"/><br> 
                Click me!  
        </div>
 </a>
<input type="submit" value="change to 1" onclick="document.getElementById('output').innerHTML

=AliansBridge.one()" />     
</body>
</html>
这里的AliansBridge即是调用的JAVA对象。
要注意的是,如果你只有一个方法需要被js调用只new一个对象就行:
ProxyBridge pBridge = new ProxyBridge();
wView.addJavascriptInterface(pBridge, "AliansBridge");
如果你需要调用好多个方法,就要把整个android程序所在的类本身实例化传递进去:
wView.addJavascriptInterface(this, "AliansBridge");
(2) android调用js的方法:wView.setWebChromeClient (WebChromeClient client)
要用到Handler更新UI,Handler mHandler = new Handler();
代码如下:mWebView.setWebChromeClient(new MyWebChromeClient());               
    mWebView.addJavascriptInterface(new Object(){
           
    public void clickOnAndroid() {       
        mHandler.post(new Runnable() {        
            public void run() {        
                mWebView.loadUrl("javascript:wave()");        
            }        
        });                
    }
 }, "demo");
同理,在html中必须有一个名为demo的对象调用clickOnAndroid()方法。
代码如下:       
final class MyWebChromeClient extends WebChromeClient {        
    @Override    
    public boolean onJsAlert(WebView view, String url, String message,     
            JsResult result) {                     
        result.confirm();      
    return super.onJsAlert(view, url, message, result);                       
    }
}

您可能感兴趣的文章:Android的WebView与H5前端JS代码交互的实例代码Android webview与js的数据交互Android中webview与JS交互、互调方法实例详解Android总结之WebView与Javascript交互(互相调用)Android WebView使用方法详解 附js交互调用方法Android中WebView与Js交互的实现方法Android WebView上实现JavaScript与Java交互android中webview控件和javascript交互实例解析Android中webview和js之间的交互Android WebView与JS交互全面详解(小结)


--结束END--

本文标题: android中WebView和javascript实现数据交互实例

本文链接: https://lsjlt.com/news/27055.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作