zoukankan      html  css  js  c++  java
  • Android高手进阶教程(二十)之---Android与JavaScript方法相互调用!

    在Android中通过WebView控件,可以实现要加载的页面与Android方法相互调用,我们要实现WebView中的addJavascriptInterface方法,这样html才能调用android方法,在这里我个人觉得有点和DWR相似。

    为了让大家容易理解,我写了一个简单的Demo,具体步骤如下:

    第一步:新建一个Android工程,命名为WebViewDemo(这里我在assets里定义了一个html页面)。

    第二步:修改main.xml布局文件,增加了一个WebView控件还有Button控件,代码如下:

    <?xml version="1.0" encoding="utf-8"?>  
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
        android:orientation="vertical"  
        android:layout_width="fill_parent"  
        android:layout_height="fill_parent"  
        >  
        <TextView    
            android:layout_width="fill_parent"   
            android:layout_height="wrap_content"   
            android:text="Welcome to Mr Wei's Blog."  
            />  
        <WebView  
            android:id="@+id/webview"  
            android:layout_width="fill_parent"   
            android:layout_height="wrap_content"   
        />  
        <Button  
            android:id="@+id/button"  
            android:layout_width="fill_parent"  
            android:layout_height="wrap_content"  
            android:text="Change the webview content"  
        />  
    </LinearLayout>

    第三步:在assets目录下新建一个demo.html文件,代码如下(这里不知道为何多了mce:这几个东东,<script></script>这样是对的):

    <html>  
        <mce:script language="javascript"><!--  
       
            function fillContent(){  
                document.getElementById("content").innerHTML =   
                     "This Content is showed by Android invoke Javascript function.";  
            }  
          
    // --></mce:script>    
      <body>  
        <p><a onClick="window.demo.startMap()" href="">Start GoogleMap</a></p>  
        <p id="content"></p>  
        <p>A Demo ----Android and Javascript invoke each other.</p>  
        <p>Author:Frankiewei</p>  
      </body>  
    </html>

    第四步:修改主核心程序WebViewDemo.java,代码如下:

    package com.tutor.webwiewdemo;  
    import android.app.Activity;  
    import android.content.ComponentName;  
    import android.content.Intent;  
    import android.os.Bundle;  
    import android.view.View;  
    import android.webkit.WebSettings;  
    import android.webkit.WebView;  
    import android.widget.Button;  
    public class WebViewDemo extends Activity {  
        private WebView mWebView;  
        private Button mButton;  
        public void onCreate(Bundle savedInstanceState) {  
            super.onCreate(savedInstanceState);  
            setContentView(R.layout.main);  
            setupViews();  
        }  
        //初始化  
        private void setupViews() {  
            mWebView = (WebView) findViewById(R.id.webview);  
            WebSettings mWebSettings = mWebView.getSettings();  
            //加上这句话才能使用javascript方法  
            mWebSettings.setJavaScriptEnabled(true);  
            //增加接口方法,让html页面调用  
            mWebView.addJavascriptInterface(new Object() {  
                //这里我定义了一个打开地图应用的方法  
                public void startMap() {  
                    Intent mIntent = new Intent();  
                    ComponentName component = new ComponentName(  
                            "com.google.android.apps.maps",  
                            "com.google.android.maps.MapsActivity");  
                    mIntent.setComponent(component);  
                    startActivity(mIntent);  
                }  
            }, "demo");  
            //加载页面  
            mWebView.loadUrl("file:///android_asset/demo.html");  
            mButton = (Button) findViewById(R.id.button);  
            //给button添加事件响应,执行JavaScript的fillContent()方法  
            mButton.setOnClickListener(new Button.OnClickListener() {  
                public void onClick(View v) {  
                    mWebView.loadUrl("javascript:fillContent()");  
                }  
            });  
        }  
    }
    岁月本长而忙者自促;天地本宽而卑者自隘;风花雪月本闲,而劳忧者自冗;天行健,君子以自强不息;地势坤,君子以厚德载物;宠辱不惊,闲看庭前花开花落;去留无意,漫随天外云卷云舒.不妄取,不妄予,不妄想,不妄求,与人方便,随遇而安
  • 相关阅读:
    Key-Value Memory Network
    Deep Mask Memory Network with Semantic Dependency and Context Moment for Aspect Level Sentiment Clas
    Deep Memory Network在Aspect Based Sentiment方向上的应用
    Deep Memory Network 深度记忆网络
    Self Attention 自注意力机制
    Attention基本公式及其变种
    *端策略优化算法(PPO)
    Policy Gradient 算法
    一本通 农场派对
    A
  • 原文地址:https://www.cnblogs.com/vvning/p/9430496.html
Copyright © 2011-2022 走看看