Android 在WebView中运行JavaScript
我想在Android中通过webview显示我的网站 但首先我想启动webView.getSettings().setJavaScriptEnabled(false); ((一开始我不想要运行JavaScript)) 页面完全加载后或10秒程序webView.getSettings().setJavaScriptEnabled(true)后;自动地 ((然后我想要运行JavaScript)) 我使用Thread.sleep,但不起作用 请帮帮我 这是我的密码Android 在WebView中运行JavaScript,android,webview,Android,Webview,我想在Android中通过webview显示我的网站 但首先我想启动webView.getSettings().setJavaScriptEnabled(false); ((一开始我不想要运行JavaScript)) 页面完全加载后或10秒程序webView.getSettings().setJavaScriptEnabled(true)后;自动地 ((然后我想要运行JavaScript)) 我使用Thread.sleep,但不起作用 请帮帮我 这是我的密码 public class Activ
public class Activity1 extends Activity {
private WebView webView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_activity1);
String url = "http://student.iaun.ac.ir";
webView = (WebView) findViewById(R.id.webview);
webView.setWebViewClient(new myWebViewClient());
webView.getSettings().setJavaScriptEnabled(false);
webView.getSettings().setLoadWithOverviewMode(true);
webView.getSettings().setUseWideViewPort(true);
webView.getSettings().setBuiltInZoomControls(true);
webView.loadUrl(url);
new Thread(new Runnable() {
@Override
public void run() {
try {
newActivity();
} catch (InterruptedException e) {
webView.getSettings().setJavaScriptEnabled(true);
e.printStackTrace();
}
}
}).start();
}
void newActivity() throws InterruptedException {
Thread.sleep(15001);
startActivity(getIntent());
}
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event)
{
if ((keyCode == KeyEvent.KEYCODE_BACK) && webView.canGoBack()) {
webView.goBack();
return true;
}
return super.onKeyDown(keyCode, event);
}
}
试试这个
private WebView webView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_activity1);
String url = "http://student.iaun.ac.ir";
webView = (WebView) findViewById(R.id.webview);
webView.setWebViewClient(new myWebViewClient());
webView.getSettings().setJavaScriptEnabled(false);
webView.getSettings().setLoadWithOverviewMode(true);
webView.getSettings().setUseWideViewPort(true);
webView.getSettings().setBuiltInZoomControls(true);
webView.loadUrl(url);
new Thread(new Runnable() {
@Override
public void run() {
try {
startDelay();
webView.getSettings().setJavaScriptEnabled(true);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}).start();
}
void startDelay() throws InterruptedException {
Thread.sleep(10000);
}
我所做的只是将setJavaScriptEnabled调用移动到try-catch的try部分,我删除了对startActivity的调用,因为在10秒后重新启动整个活动对我来说没有意义
但是比这更好的是,设置一个
WebViewClient
,并在OnPageFinished方法中放入setJavaScripteEnabled(true)
为什么要将setJavaScriptEnabled(true)
放在catch块中?它不会以这种方式执行。只需将其移到行newActivity()下方即可代码>在一个try块中。那你为什么要重新开始你自己的活动呢?基鲁瓦卡:你能写正确的代码和代码吗works@user3033953很高兴为您提供帮助,如果这个答案对您有效,请不要忘记将其标记为正确/向上投票。