javascript 与 webview 交互
16lz
2021-01-25
在项目中我碰到需要使用html的js调用android 刷新webview。这里是载入了本地html,需要在html里调用js接口。所以查了下关键代码如下:
public class MyActivity extends Activity { private WebView Wv; private TextView myTextView; final Handler myHandler = new Handler(); @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Wv = (WebView)findViewById(R.id.webView1); myTextView = (TextView)findViewById(R.id.textView1); final JavaScriptInterface myJavaScriptInterface = new JavaScriptInterface(this); Wv.getSettings().setLightTouchEnabled(true); Wv.getSettings().setJavaScriptEnabled(true); Wv.addJavascriptInterface(myJavaScriptInterface, "AndroidFunction"); Wv.loadUrl("file:///android_asset/javascriptTestHtml.html"); } public class JavaScriptInterface { Context mContext; JavaScriptInterface(Context c) { mContext = c; }@JavascriptInterface public void showToast(String webMessage){ final String msgeToast = webMessage; myHandler.post(new Runnable() { @Override public void run() { // This gets executed on the UI thread so it can safely modify Views myTextView.setText(msgeToast); } }); Toast.makeText(mContext, webMessage, Toast.LENGTH_SHORT).show(); } } }
Html
如果sdk版本是4.2以上需要在方法上加上 @JavascriptInterface 注入,4.2一下则不需要。
而且需要注意的是,调用方法后不能直接修改androidUI。需要使用handler修改,这就不多说了。
下面是源码地址:
http://download.csdn.net/detail/chinawszjr/8317391
更多相关文章
- android源码中的c c++库( android中动态和静态版本都有的库)
- android初中高开发工程师必需要装的一个APP
- android 按两次返回键退出程序
- android MediaPlayer+Stagefright架构(音频)图解
- Android(安卓)软件自动更新功能实现的方法
- Android对接第三方登录,微信登录
- Android中使用Gesture加入手势操作
- android Bitmap类方法属性 详细说明
- Android开发笔记