Android中js和原生交互

加载webview的类

public class MainActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        JavaScriptInterface JSInterface;
        WebView wv;
        wv = (WebView) findViewById(R.id.wv_test);
        wv.getSettings().setJavaScriptEnabled(true); ///------- 设置javascript 可用
        JSInterface = new JavaScriptInterface(this); ////------
        wv.addJavascriptInterface(JSInterface, "JSInterface"); // 设置js接口  第一个参数事件接口实例,第二个是实例在js中的别名,这个在js中会用到
        wv.loadUrl("file:///android_asset/test.html");
    }
}

JavaScriptInterface类


public class JavaScriptInterface {
    Context mContext;
    JavaScriptInterface(Context c) {
        mContext = c;
    }

    @JavascriptInterface
    public void doSomething() {
      //点击webwiew网页里按钮时候要做的事

    }
}

webview

<html>
<head>
<script type="text/javascript">
function displaymessage()
{
JSInterface.doSomething();
}
</script>
</head>
<body>
<form>
<input type="button" value="Click me!" onclick="displaymessage()" />
</form>
</body>
</html>

代码下载
Demo代码下载(AS导到Module里)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,827评论 25 709
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,305评论 4 61
  • 你爱站在童话故事里,你喜欢小王子和他的玫瑰,他们一起走过好多故事,小王子是个温暖的小孩儿,我喜欢看几米的漫画,那里...
    风吹得比玫瑰灿烂阅读 270评论 0 1
  • 晚自习回家,小儿说,:“…………妈妈,我还想回原班”。 前一秒还愤愤不平,此一刻已经嬉皮笑脸了。 让人,啼笑皆非的...
    米音儿阅读 402评论 0 2
  • 此生有四愿 一愿良友永相随 二愿来日得久爱 三愿游历天下景 四愿家眷仍安康❤
    嘿萌小檬阅读 400评论 0 0