Android与JavaScript交互初览

背景

年后换了工作,第一个接手的项目需要Android层与WebView的JavaScript交互

必备小知识
  • JavaScript代码区分大小写,多余的空格会被忽略
  • JavaScript的变量申明关键字:var
  • JavaScript数组的申明
    var cars = new Array();    var cars = ["Audi","BMW","Volvo"];
  • 外部js文件使用:
  • Web浏览器在解析HTML文件时,自动执行其中的JavaScript脚本
  • 网页被加载时,浏览器自动创建文档对象Document
  • WebView注入Java对象,即通过WebView建立JavaScript和Android原生对象的绑定关系
  • Android使用本地js文件的目录
    file:///android_assert/*.html    file:///sdcard/*.html
主要类
  • WebView:承载类
  • JsIntergration:提供供Web前端的JavaSript调用
示例代码
  • html代码
    js中调用本地方法        Click!!!!
  • Android 代码
package com.example.jiaozi.androidjsdemo;import android.graphics.Color;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.webkit.WebView;import android.webkit.WebViewClient;import android.widget.Button;import com.example.jiaozi.androidjsdemo.js.JSInteration;public class MainActivity extends AppCompatActivity {    private WebView mWebView;    private Button mClickButton;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        initView();    }    private void initView() {        mClickButton = (Button) findViewById(R.id.activity_main_btn);        mClickButton.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                mWebView.loadUrl("javascript:runFromJs()");            }        });        mWebView = (WebView) findViewById(R.id.activity_main_webview);        mWebView.setWebViewClient(new WebViewClient() {        });        mWebView.addJavascriptInterface(new JSInteration(), "myObject");        mWebView.getSettings().setDefaultTextEncodingName("utf-8");        mWebView.getSettings().setJavaScriptEnabled(true);        mWebView.setBackgroundColor(Color.argb(0, 0, 0, 0));        mWebView.loadUrl("file:///android_asset/jsTest.html");    }}
  • Android布局
<?xml version="1.0" encoding="utf-8"?>    

更多相关文章

  1. Android 交叉编译 Linux 可执行文件
  2. Android 工程中的 R.java 文件丢失后如何重新生成
  3. 【Android Developers Training】 25. 保存文件
  4. Android本地数据存储之.txt文件存储读写
  5. Android代码内存优化建议-OnTrimMemory优化

随机推荐

  1. Android之关于Intent的Flag属性的讲解
  2. 在服务器上使用grandle打包android源码
  3. DownloadManager 文件下载
  4. android 模拟器中找不到程序
  5. Android电视关闭效果
  6. android用MediaCodeC将opengl绘制内容录
  7. Android耳机按键监听
  8. Kotlin Android(安卓)环境搭建
  9. 背景图片颜色渐变
  10. Android自定义view四手势缩放移动的Image