Android Studio中实现本地html中js与java交互简单实例
2017-06-27 18:11
831 查看
本例实现了html中点击按钮显示一个Toast,在Android studio2.2.2测试通过布局文件:<?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:id="@+id/activity_main"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"tools:context="com.future.login.MainActivity"><WebViewandroid:layout_width="match_parent"android:layout_height="match_parent"android:id="@+id/wb" /></RelativeLayout>html代码:<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>Android测试网页</title><script language="JavaScript" type="text/javascript">function showToast(){window.myTosat.showMessage();}</script></head><body><input name="btn" type="button" onClick="showToast()" value="点我提示" /></body></html>主函数
以上注意的是:(1)android studio没有assets文件需要在Project-->app-->src-->main文件下建立一个assets文件夹,然后把index.html放进去,别把文件夹命名为asset否则出错(2)wb.loadUrl("file:///android_asset/index.html");别写成wb.loadUrl("file:///android_assets/index.html");这样也是错的,所以特别注意什么时候用assets什么时候用asset(3)调用的方法上加
不加没反应
public class MainActivity extends AppCompatActivity { private WebView wb; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); wb=(WebView)findViewById(R.id.wb); wb.getSettings().setJavaScriptEnabled(true); wb.addJavascriptInterface(new myToast(),"myTosat"); wb.loadUrl("file:///android_asset/index.html"); } public class myToast { @JavascriptInterface public void showMessage(){ Toast.makeText(getApplicationContext(),"你点我了",Toast.LENGTH_SHORT ).show(); } } }
以上注意的是:(1)android studio没有assets文件需要在Project-->app-->src-->main文件下建立一个assets文件夹,然后把index.html放进去,别把文件夹命名为asset否则出错(2)wb.loadUrl("file:///android_asset/index.html");别写成wb.loadUrl("file:///android_assets/index.html");这样也是错的,所以特别注意什么时候用assets什么时候用asset(3)调用的方法上加
@JavascriptInterface
不加没反应
相关文章推荐
- Android WebView加载本地html并实现Java与JS交互
- js实现html table 行,列锁定的简单实例
- js+html+css实现简单页面交互功能(2015知乎前端笔试题)http://v.youku.com/v_show/id_XMTI0ODQ5NTAyOA==.html?from=y1.7-1.2
- 用HTML/JS/PHP方式实现页面延时跳转的简单实例
- Android中WebView载入本地HTML代码并实现Java与JavaScript交互
- 简单的实现 Js和java交互
- Android中WebView载入本地HTML代码并实现Java与JavaScript交互的例子
- 纯js实现html转pdf的简单实例(推荐)
- Android使用webview控件加载本地html,通过Js与后台Java实现数据的传递
- 用HTML/JS/PHP方式实现页面延时跳转的简单实例
- Java中读写锁的实现及使用读写锁简单实现缓存系统的实例
- java中读写锁的实现及使用读写锁简单实现缓存系统的实例
- JS实现本地缓存实例
- 源代码格式化工具推荐(coolformat),可以实现c,c++,c#,java,js,json,html,sql等的格式化
- java简单多线程方式+实现文件上传(spring mvc + jquery.form.js 框架)
- SpringMVC教程/实例(三):java SpringMVC之REST实现简单的增删改查CRUD
- 结合Html/js/css实现超级链接访问JavaScript的事件!(实例)
- 利用ActiveX实现本地文件夹选择功能(JS,HTML)
- 【个人笔记】基于AMF-RPC实现Flex与JAVA的交互实例【上】