混合APP开发的套路(三): android和javascript初步交互
2017-04-01 14:59
399 查看
我们测试方便,我们利用布局
我们会吧本地index.html文件加载到
index.html内容如下:
我们要在安卓里来调用这个
Activity里:
<?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()"); } }); }
相关文章推荐
- 混合APP开发的套路(三): android和javascript初步交互(js调安卓)
- Android混合开发之WebViewJavascriptBridge实现JS与java安全交互
- Android app混合开发,本地应用与htm5交互
- Android混合开发之WebView与Javascript交互
- Android混合开发之WebView与Javascript交互
- Android混合开发之WebViewJavascriptBridge实现JS与java安全交互
- Android混合开发之WebView与Javascript交互
- Android混合开发之WebView与Javascript交互
- Android混合开发之WebViewJavascriptBridge实现JS与java安全交互
- Android混合开发之WebView与Javascript交互
- Android混合开发之WebViewJavascriptBridge实现JS与java安全交互
- 混合APP开发的套路(6): Android发送http网络请求
- android native+h5——混合开发初步,通过js交互数据
- Android混合开发之WebView与Javascript交互
- Android原生APP中添加ReactNative 进行混合开发教程
- Android官方开发文档Training系列课程中文版:与其它APP交互之允许其它APP启动你的Activity
- Android开发方式之Java+html+javascript混合开发
- 电商类APP H5与iOS和android混合开发问题记录
- Android与H5交互(混合开发)
- Hybrid App开发模式中, IOS/Android 和 JavaScript相互调用方式