Android中与js进行交互
2016-07-13 15:03
375 查看
在Html页面里,使用js调用Android原生态的方法
第一步:在src/main目录下创建assets资源目录,在里面放一个Html页面。
第二步:在布局文件是放一个webView控件
第三步:创建一个中间资源对象,做为js和Android通信的中间桥
第四步:在Activity里获取控件
到此,就可以在Html页面里面,通过js方法调取Android的原生态方法了
第一步:在src/main目录下创建assets资源目录,在里面放一个Html页面。
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html" ; charset="utf-8"/> <title>Js调用Android</title> </head> <body> <!--注意此处的MyObj是Android暴露出来的对象--> <input type="button" value="打招呼" onclick="myObj.showToast('孙悟空');"/> <input type="button" value="图书列表" onclick="myObj.showList();"/> <input type="button" value="打开TwoActivity" onclick="myObj.openTwoActivity();"/> </body> </html>
第二步:在布局文件是放一个webView控件
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin"> <WebView android:id="@+id/webview" android:layout_width="match_parent" android:layout_height="match_parent"/> </RelativeLayout>
第三步:创建一个中间资源对象,做为js和Android通信的中间桥
public class MyObject { Context mContext; public MyObject(Context cxt) { mContext = cxt; } //该方法将会暴露给JavaScript脚本调用 @JavascriptInterface public void showToast(String name){ Toast.makeText(mContext,name+",您好!",Toast.LENGTH_SHORT).show(); } @JavascriptInterface public void showList(){ //显示一个普通的列表对话框 new AlertDialog.Builder(mContext) .setTitle("图书列表") .setIcon(R.mipmap.ic_launcher) .setItems(new String[]{"瓦登尔湖","活着","平凡的世界"},null) .setPositiveButton("确定",null) .create().show(); } @JavascriptInterface public void openTwoActivity(){ mContext.startActivity(new Intent(mContext,TwoActivity.class)); } }
第四步:在Activity里获取控件
public class MainActivity extends AppCompatActivity { WebView myWebView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); myWebView = (WebView) findViewById(R.id.webview); myWebView.loadUrl("file:///android_asset/test.html"); //获取WebView的设置对象 WebSettings webSettings = myWebView.getSettings(); //开启JavaScript webSettings.setJavaScriptEnabled(true); //将MyObject对象暴露给JavaScript脚本 //这样test.html页面中的JavaScript可以通过myObj来调用MyObject的方法 myWebView.addJavascriptInterface(new MyObject(this),"myObj"); }
到此,就可以在Html页面里面,通过js方法调取Android的原生态方法了
相关文章推荐
- JQuery1——基础($对象,选择器,对象转换)
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置