我们可以知道浏览器何时完成从 Android 上的应用程序加载 URL
Can we know when browser finish loading an URL from application on Android
我有一个应用程序,我使用此代码在 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。
谢谢!
使用网络视图!在使用 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;
}
}
});
如果您使用 webview 加载页面,那么当页面加载完成时,onPageFinished 方法将被调用,您可以执行您的操作,method.below 是代码,
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.
}
}
}
我有一个应用程序,我使用此代码在 android.
的浏览器中打开 URLbutton.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。 谢谢!
使用网络视图!在使用 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;
}
}
});
如果您使用 webview 加载页面,那么当页面加载完成时,onPageFinished 方法将被调用,您可以执行您的操作,method.below 是代码,
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.
}
}
}