Android 方法在Javascript接口中不起作用

Android 方法在Javascript接口中不起作用,android,Android,我在Android的Javascript界面中加载了一个Webview url,但它们不起作用; 如何处理 @SuppressLint({ "SetJavaScriptEnabled", "NewApi" }) public class MainActivity extends ActionBarActivity { WebView Browser; String website ="http://192.168.1.4/Soft/Bigcats/Ba/"; @Ove

我在Android的Javascript界面中加载了一个Webview url,但它们不起作用; 如何处理

@SuppressLint({ "SetJavaScriptEnabled", "NewApi" }) public class MainActivity extends ActionBarActivity {
     WebView Browser;
     String website ="http://192.168.1.4/Soft/Bigcats/Ba/";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
          Browser=(WebView) findViewById(R.id.webView1) ; 
       class MyJavaScriptInterface
       {

           @JavascriptInterface
           @SuppressWarnings("unused")
          public void Danyial(String Data)
           {
                Browser.loadUrl("http://enjoybaba.com");
             }
       }
       Browser.addJavascriptInterface(new MyJavaScriptInterface(), "api");
       Browser.loadUrl(website); 
       Browser.setWebViewClient(new WebViewClient());

    }

}

JavaScript在另一个线程中运行,而不是在UI中运行,因此您可能需要在UI线程上运行代码才能正常工作

MainActivity.this.runOnUiThread(new Runnable() {
    @Override
    public void run() {
        Browser.loadUrl("http://enjoybaba.com");    
    }
});
  • 您有
    Browser.setWebViewClient(新的WebViewClient())
    浏览器.loadUrl(网站)之后。在
    加载URL
    之前尝试
    设置WebViewClient
  • 我会做得稍微不同一点。看一看
  • 声明
    JsHelper

    public interface JsHelper {
        public void loadNewUrl();
    }
    
    Javascript接口调用
    JsHelper

    public class JsApi {
        JsHelper mJsHelper;
    
        public JsApi(JsHelper jsHelper) {
            mJsHelper= mJsHelper;
        }
    
        @JavascriptInterface
        public void Danyial() {
            mJsHelper.loadNewUrl();
        }
    
    }
    
    main活动
    实现
    JsInterface

    public class MainActivity extends ActionBarActivity implements JsHelper  {
         WebView Browser;
         String website ="http://192.168.1.4/Soft/Bigcats/Ba/";
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            Browser=(WebView) findViewById(R.id.webView1) ; 
    
            Browser.addJavascriptInterface(new JsApi (this), "api");
            Browser.setWebViewClient(new WebViewClient());
            Browser.loadUrl(website); 
    
    
        }
    
        @Override
        public void loadNewUrl(){
            Browser.loadUrl("http://enjoybaba.com");
        }
    
    }
    

    这是一个错误Android@Dannyial你说的是什么样的错误?我投票结束这个问题,因为这是一个离题的问题。