您的位置:首页 > 移动开发 > Android开发

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>主函数
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

不加没反应

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: