混合APP开发的套路(三): android和javascript初步交互
来源:互联网 发布:百度网盘下载助手mac 编辑:程序博客网 时间:2024/05/01 23:08
我们测试方便,我们利用布局
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="测试文本" android:id="@+id/wvText"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="调用javscript" android:id="@+id/wvBtn"/> <WebView android:layout_width="match_parent" android:layout_height="227dp" android:layout_weight="0.27" android:id="@+id/webView"/></LinearLayout>
我们会吧本地index.html文件加载到WebView
控件中,然后点击Button
控件,执行一段javascsript脚本(一个js方法).
index.html内容如下:
<!DOCTYPE html><html lang="en"> <head> <meta charset="utf-8"> <title>this is title</title> <script> function show(){ document.getElementById("txtMsg").value = "hello javascript"; } </script> </head> <body> <input type="text" id="txtMsg"> </body></html>
show()
方法实现了,把hello javascript
写入到input文本框。
我们要在安卓里来调用这个show()
方法。
Activity里:
@Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); this.setContentView(R.layout.webview); // 设置layout // 获取webView组件 final WebView webView = (WebView)findViewById(R.id.webView); // 拿到webView的设置对象 WebSettings settings = webView.getSettings(); settings.setAppCacheEnabled(true); // 开启缓存 settings.setJavaScriptEnabled(true); // 开启javascript支持 // 加载文件到webView AssetManager assetManager = this.getAssets(); try { InputStream inputStream = assetManager.open("index.html"); byte[] buffer = new byte[inputStream.available()]; inputStream.read(buffer); // 读取html内容 String htmlContent = new String(buffer,"utf-8"); inputStream.close(); // 加载到webView中 webView.loadData(htmlContent,"text/html","utf-8"); } catch (IOException e) { e.printStackTrace(); } // 找到界面上的按钮 Button btn = (Button)findViewById(R.id.wvBtn); // 给按钮绑定事件 btn.setOnClickListener(new View.OnClickListener(){ @Override public void onClick(View view) { webView.loadUrl("javascript:show()"); } }); }
0 0
- 混合APP开发的套路(三): android和javascript初步交互
- 混合APP开发的套路(三): android和javascript初步交互(js调安卓)
- 混合APP开发的套路(6): Android发送http网络请求
- 混合APP开发的套路(二):加载项目中的html
- 混合APP开发的套路(五): Activity保存登录用户名
- Android app 开发套路
- Android混合开发 java和js交互
- Android app混合开发,本地应用与htm5交互
- 混合APP开发的套路(四):在html页面中打开项目中的Activity
- Android混合开发之WebView与Javascript交互
- Android混合开发之WebView与Javascript交互
- Android混合开发之WebView与Javascript交互
- Android混合开发之WebView与Javascript交互
- Android混合开发之WebView与Javascript交互
- Android App混合开发
- 移动端混合开发(1):和H5的javascript交互
- android native+h5——混合开发初步,通过js交互数据
- Hybrid APP 混合开发模式的选择之路(五:原生和H5的交互原理)
- Tomcat和IIS整合过程—上—IIS安装
- 算法提高 求最大值 C语言
- 编写USB 驱动程序
- java工具类-------get请求和post请求
- Android模拟器和PC之间数据传送
- 混合APP开发的套路(三): android和javascript初步交互
- 32bit与64bit程序移植
- sql2008“备份集中的数据库备份与现有的xx数据库不同”解决方法
- 基准测试spec cpu2006
- scala学习
- liunx下安装composer
- 设计模式——外观模式
- sphinx安装错误解决
- 自动化-滑屏功能用例