Android和Html的简单交互
16lz
2021-12-04
1.通过WebView加载Html界面。在android studio中html放在assets中。
但是默认的并不存在这个文件夹,创建过程是
2.创建后简单实现下,js调用android中的方法。通过οnclick="window.android.startFunction()" window.android.方法名 调用android方法
<1>创建html文件 橘黄色为适配手机屏幕代码
这里是HTMLHTML内容显示
<2> Main布局只有一个webview
<3>Main代码
public class MainActivity extends AppCompatActivity { private WebView contentWebView = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); contentWebView = (WebView) findViewById(R.id.webview); // 启用javascript contentWebView.getSettings().setJavaScriptEnabled(true); // 从assets目录下面的加载html contentWebView.loadUrl("file:///android_asset/b.html"); contentWebView.addJavascriptInterface(MainActivity.this,"android"); } //由于安全原因 需要加 @JavascriptInterface @JavascriptInterface public void startFunction(){ runOnUiThread(new Runnable() { @Override public void run() { Toast.makeText(MainActivity.this,"Toast",Toast.LENGTH_SHORT).show(); } }); } @JavascriptInterface public void startFunction(final String text){ runOnUiThread(new Runnable() { @Override public void run() { new AlertDialog.Builder(MainActivity.this).setMessage(text).show(); } }); }}
其实现效果图:
3 android 调用html js方法
<1> Html文件如下,script中有二个方法,共android中调用。
这里是HTML内容显示
<2>通过webView.loadUrl("javascript:方法名"); 来调用js中的方法。
public class MainActivity extends AppCompatActivity { private WebView contentWebView = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); contentWebView = (WebView) findViewById(R.id.webview); // 启用javascript contentWebView.getSettings().setJavaScriptEnabled(true); // 从assets目录下面的加载html contentWebView.loadUrl("file:///android_asset/b.html"); contentWebView.addJavascriptInterface(MainActivity.this,"android"); //无参调用Js点击 findViewById(R.id.button).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // 无参数调用 contentWebView.loadUrl("javascript:javacalljs()"); } }); //有参调用Js点击 findViewById(R.id.button2).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // 传递参数调用 contentWebView.loadUrl("javascript:javacalljswith(" + "'这里是调用js方法'" + ")"); } }); }
实现图如下:
更多相关文章
- 浅谈Java中Collections.sort对List排序的两种方法
- Python list sort方法的具体使用
- python list.sort()根据多个关键字排序的方法实现
- Android(安卓)Service生命周期及用法!
- android EditText控件自动获取焦点弹出键盘解决方法
- Unity3d调用android中的方法
- android关闭应用
- android——彻底关闭——应用程序
- 五.在Android中实现线程的方法