android - 从WebView获取网站源码

标签 android html css webview

我正在尝试获取 HTML 源代码,但它卡住了应用程序。 我不知道是什么问题,我添加了 Internet Permission 我从网站上获取了这段代码,但它对我不起作用。它会一直工作,直到我按下按钮,然后它才会停止。

我希望有人能帮我解决这个问题,这是我正在使用的代码:

public class MainActivity extends Activity {

  private String HTML = "";
  EditText tv;
  private ProgressDialog m_ProgressDialog;

@Override
protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_main);

    Button btn = (Button)findViewById(R.id.button1);
     tv = (EditText)findViewById(R.id.editText1);
    btn.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub
            getHTML("http://m.Facebook.com/");  
        }
    });
}

public void getHTML(String paramString)
{
  try
  {
    BufferedInputStream localBufferedInputStream = new BufferedInputStream(new URL(paramString).openConnection().getInputStream());
    ByteArrayBuffer localByteArrayBuffer = new ByteArrayBuffer(50);
    while (true)
    {
      int i = localBufferedInputStream.read();
      if (i == -1)
      {
        HTML = new String(localByteArrayBuffer.toByteArray());
        handler.sendEmptyMessage(0);
        return;
      }
      i = (byte)i;
      localByteArrayBuffer.append(i); 

    }
  }
  catch (Exception localException)
  {
    while (true)
      this.HTML = "Error!";
  }
}


private Handler handler = new Handler()

{
  public void handleMessage(Message paramMessage)
 {

   EditText localEditText = (EditText)MainActivity.this.findViewById(R.id.editText1);

   MainActivity.this.m_ProgressDialog.dismiss();

    localEditText.setText(MainActivity.this.HTML);

 }

};


}

最佳答案

这与 WebView 有什么关系?您有一个 NetworkOnMainThreadExeption。您必须将代码放在 AsyncTask 或 Thread 中以防止出现这种情况。

关于android - 从WebView获取网站源码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26075957/

相关文章:

java - 当 Firebase 中的值发生更改时,Sharedpreferences 值会更新

android - 在 Android 中使用虚假的 http 响应测试 Activity

android - 如何在普通 fragment 中添加 DialogFragment?

javascript - MutationObserver 和当前/计算的 CSS 样式

javascript - fileBlob 未从客户端服务器端传递

android - HTML 电子邮件大小调整 - Android

java - 如何在 Java (Android) 中使用 getMonth 添加前导零

html - 调整屏幕大小时,按钮离开页面

css - HTML 列表中的无意义填充

html - 包装器中 div 的 overflow-x