189 8069 5689

androidWebViewjava与js相互调用-创新互联

android webView js 使用
1、js调用java
   1、1 js代码
   

   1.2、java代码
   package com.example.webview;
   import android.annotation.SuppressLint;
   import android.content.Intent;
   import android.net.Uri;
   import android.os.Bundle;
   import android.support.v7.app.ActionBarActivity;
   import android.view.KeyEvent;
   import android.view.Menu;
   import android.view.MenuItem;
   import android.view.Window;
   import android.webkit.JavascriptInterface;
   import android.webkit.WebSettings;
   import android.webkit.WebView;
   import android.webkit.WebViewClient;

   @SuppressLint("JavascriptInterface")
   public class MainActivity extends ActionBarActivity {

      private WebView webView;
      private int screenHeight;
      private int screenWidth;
      @Override
      protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);

         requestWindowFeature(Window.FEATURE_NO_TITLE); //设置无标题
         setContentView(R.layout.activity_main);

         webView = (WebView) findViewById(R.id.web_view);
         WebSettings webSettings = webView.getSettings();
         webSettings.setBuiltInZoomControls(true);
         webSettings.setLoadWithOverviewMode(true);
         webSettings.setJavaScriptEnabled(true);

         webView.setWebViewClient(new MyWebViewClient());
         webView.addJavascriptInterface(new MyAndroidInterface(), "androidInterface");

         String url ="file:///android_asset/tangbangjidian/fuwu.html";
         //String url ="file:///android_asset/baitian/index.html";
         webView.loadUrl(url);
      }

     class MyAndroidInterface{

         public MyAndroidInterface(){};

         @JavascriptInterface //注意:加上这行注解
         public void call(String number){
            //用intent启动拨打电话
              Intent intent = new Intent(Intent.ACTION_CALL,Uri.parse("tel:"+number));
              startActivity(intent);
         }
      }

      @Override
      public boolean onKeyDown(int keyCode, KeyEvent event) {
         if ((keyCode == KeyEvent.KEYCODE_BACK) && webView.canGoBack()) {
            webView.goBack(); //goBack()表示返回WebView的上一页面
              return false;
          }
         return true;
      }

      private class MyWebViewClient extends WebViewClient{
         @Override
         public boolean shouldOverrideUrlLoading(WebView view, String url) {
             view.loadUrl(url);// 当打开新链接时,使用当前的 WebView,不会使用系统其他浏览器
             return true;
         }
      }

      @Override
      public boolean onCreateOptionsMenu(Menu menu) {
         getMenuInflater().inflate(R.menu.main, menu);
         return true;
      }

      @Override
      public boolean onOptionsItemSelected(MenuItem item) {
         int id = item.getItemId();
         if (id == R.id.action_settings) {
            return true;
         }
         return super.onOptionsItemSelected(item);
      }
   }

2、java 调用js
   2.1、java代码,webView为WebView对象
       // 无参数调用
      webView.loadUrl("javascript:javacalljs()");
      // 传递参数调用
      webView.loadUrl("javascript:javacalljswithargs(" + "'hello world'" + ")");
   2.2、js代码
   function javacalljs(){
    document.getElementById("content").innerHTML +=
        "java调用了js函数";
   }

   function javacalljswithargs(arg){
       document.getElementById("content").innerHTML +=
           (""+arg);
   }

成都创新互联公司是一家专业从事成都网站设计、成都网站建设、外贸网站建设的网络公司。作为专业网站建设公司,成都创新互联公司依托的技术实力、以及多年的网站运营经验,为您提供专业的成都网站建设、营销型网站建设及网站设计开发服务!

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


本文标题:androidWebViewjava与js相互调用-创新互联
URL分享:http://jkwzsj.com/article/djgsgh.html

其他资讯