Android中WebView和JavaScript通信
16lz
2022-04-13
Android提供了webview和JavaScript之间通信的api,这样就能做到native程序和html程序之间的交互,看下面的例子(html中调用js,传递两个字符串给java程序):
java代码:
public class AndroidJsDemoActivity extends Activity {private WebView mWebView; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); mWebView = (WebView) findViewById(R.id.webview); WebSettings webSettings = mWebView.getSettings(); webSettings.setSavePassword(false); webSettings.setSaveFormData(false); webSettings.setJavaScriptEnabled(true); webSettings.setSupportZoom(true); mWebView.addJavascriptInterface(new DemoJavaScriptInterface(), "androidjsdemo"); mWebView.loadUrl("file:///android_asset/demo.html"); } final class DemoJavaScriptInterface { DemoJavaScriptInterface() { } public void test(String str1,String str2){ Intent intent=new Intent(AndroidJsDemoActivity.this,Activity2.class); Bundle b=new Bundle(); b.putString("str1", str1); b.putString("str2", str2); intent.putExtras(b); startActivity(intent); } }}
html代码:
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <title>Insert title here</title> </head> <body>this is html page<p> <input type="submit" value="buttons" onclick="androidjsdemo.test('ddd','fff')"/> </body> </html>
androidjsdemo与java程序中addJavascriptInterface(new DemoJavaScriptInterface(), "androidjsdemo")后面的参数对应test('ddd','fff')是使用的 DemoJavaScriptInterface的方法
/**
* @author 张兴业
* 邮箱:xy-zhang#163.com
* android开发进阶群:278401545
*
*/
更多相关文章
- 在Android(安卓)Service中弹出系统全屏对话框
- 利用Handler定时更新Android(安卓)UI
- Android(安卓)使用HTTPClient调用Web请求(查询手机号码区域)
- Android(安卓)KTX简介
- 简单实现Android顶部工具栏和底部工具栏
- Android(安卓)应用语言设置的实现
- Android中使用代码执行shell命令
- Android使用ViewPager实现左右滑动效果
- Android(安卓)/ iOS 静态代码扫描工具调研