我们可以知道浏览器何时从Android上的应用程序加载URL

时间:2015-03-16 06:57:49

标签: android browser android-webview

我有一个应用程序,从应用程序我使用此代码在android浏览器中打开URL。

button.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View arg0) {

        Intent intent = new Intent(Intent.ACTION_VIEW, 
             Uri.parse("http://www.mkyong.com"));
        startActivity(intent);

    }

});

我想知道我们是否可以知道浏览器何时从代码中完整加载该URL。 谢谢!

2 个答案:

答案 0 :(得分:0)

使用webview!使用webview时您将获得很大的控制权,因为用户将保留在您的应用程序中,即使他们正在显示外部页面。 (您仍然无法控制加载的html中执行的操作,例如在Web视图中单击的按钮。)

boolean loadingFinished = true;
boolean redirect = false;

mWebView.setWebViewClient(new WebViewClient() {

   @Override
   public boolean shouldOverrideUrlLoading(WebView view, String urlNewString) {
       if (!loadingFinished) {
          redirect = true;
       }

   loadingFinished = false;
   view.loadUrl(urlNewString);
   return true;
   }

   @Override
   public void onPageStarted(WebView view, String url, Bitmap facIcon) {
        loadingFinished = false;
        //SHOW LOADING IF IT ISNT ALREADY VISIBLE  
    }

   @Override
   public void onPageFinished(WebView view, String url) {
       if(!redirect){
          loadingFinished = true;
       }

       if(loadingFinished && !redirect){
         //HIDE LOADING IT HAS FINISHED
       } else{
          redirect = false; 
       }

    }
});

答案 1 :(得分:0)

如果您使用webview加载页面,那么当页面加载完成时,onPageFinished方法将调用,您可以在该方法中执行操作。下面是代码,

public class MainActivity extends Activity {

WebView myBrowser;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.dropdown_html); 
    myBrowser = (WebView)findViewById(R.id.mybrowser); 
    myBrowser.loadUrl("http://www.mkyong.com"); 
    myBrowser.getSettings().setJavaScriptEnabled(true);
    myBrowser.setWebViewClient(new MyBrowser());
}

private class MyBrowser extends WebViewClient {     

    @Override
    public void onPageFinished(WebView view, String url) {
        // Your page loading is finish.
    }
}

}