Android 方法在Javascript接口中不起作用
我在Android的Javascript界面中加载了一个Webview url,但它们不起作用; 如何处理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
@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你说的是什么样的错误?我投票结束这个问题,因为这是一个离题的问题。