webview加载本地文件时不能自动加载,没有反应

forerver121 2015-03-16 11:45:23
package com.example.helloworld;

import java.io.IOException;

//import org.ksoap2.serialization.SoapObject;

import com.example.tool.GetHtmlDate;
import com.example.tool.GetWebService;
import com.example.tool.MyWebChromeClient;
import com.example.tool.SimpleClient;

import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.JavascriptInterface;
import android.webkit.WebViewClient;

import android.widget.Button;


public class MainActivity extends Activity {

private final String url="file:///android_asset/html/tenderlist.html";
private WebView webview;
private Handler handler=new Handler();
private Button bt1;
private Button btn2;

@JavascriptInterface
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
System.out.println("***************************************************************************");
setContentView(R.layout.tenderlist);
webview = (WebView)this.findViewById(R.id.webView1);
WebSettings websettings=webview.getSettings();
websettings.setJavaScriptEnabled(true);


//获得数据,放到myjavascript对象中!!!!
webview.addJavascriptInterface(new GetHtmlDate(this,handler), "myjavascript");
bt1=(Button)this.findViewById(R.id.button1);
btn2=(Button)this.findViewById(R.id.button2);

bt1.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
// TODO 自动生成的方法存根
System.out.println("*77777777777777777777");
webview.setWebChromeClient(new MyWebChromeClient());
webview.loadUrl(url);

}
});
//按钮自动触发单机上面的单机事件
bt1.performClick();
btn2.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
// TODO 自动生成的方法存根
System.out.println("*888888888");
webview.setWebChromeClient(new MyWebChromeClient());
webview.loadUrl("http://www.baidu.com");

}
});
webview.setWebViewClient(new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
System.out.println(url);
view.loadUrl(url);
return true;
}
});

System.out.println("***************************************************************************");
// GetWebService getservice=new GetWebService();
// getservice.aaaa();
// SimpleClient simpleclient=new SimpleClient();
// simpleclient.SimpleClients();


//加载js弹出


}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}

}

想实现加载activity时自动触发bt1的onclick事件 bt1.performClick();但是实际运行时,页面显示空白,个别时候(及少数)能显示正常,如图1应该是加载完成后应该的界面
图1:应该显示的页面
图二:实际显示空白页面
请大神帮忙看一下,万分感谢
...全文
168 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
windfury_plus 2015-03-17
  • 打赏
  • 举报
回复
大概是要运行在ui线程里,并不是做方法调用 例如:

Handler mHandler = new Handler();
mHandler.postDelayed(new Runnable()
{
    public void run()
    {
        btn1.performClick();
    }
}, 50);
有一篇写的很详细的文章~ http://www.it165.net/pro/html/201311/7872.html
windfury_plus 2015-03-17
  • 打赏
  • 举报
回复
引用 3 楼 forerver121 的回复:
我把我的bt1.performClick();换成了你的代码,还是不能加载出来,并在你的代码里加了打印输出“———————”,会调用,但是显示空白页面
打印了77777…… 说明btn的按钮是执行了,但是加载view失败 错误是:eglsurfaceattrib not implemented ? google、百度了一下查错的话原因蛮多,不过基本上都是模拟器的问题…… 要不你用真机试试
forerver121 2015-03-17
  • 打赏
  • 举报
回复
引用 1 楼 inquisitive_plus 的回复:
大概是要运行在ui线程里,并不是做方法调用
例如:

Handler mHandler = new Handler();
mHandler.postDelayed(new Runnable()
{
public void run()
{
btn1.performClick();
}
}, 50);

有一篇写的很详细的文章~
http://www.it165.net/pro/html/201311/7872.html


我把我的bt1.performClick();换成了你的代码,还是不能加载出来,并在你的代码里加了打印输出“———————”,会调用,但是显示空白页面
forerver121 2015-03-17
  • 打赏
  • 举报
回复
谢了,晚上回去试一下
forerver121 2015-03-17
  • 打赏
  • 举报
回复
谢谢,,,,,,,,,

80,349

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧