2
내가 내 응용 프로그램에서이 코드가 작동하지 않습니다웹보기의 shouldoverrideurlloading이
public class Home extends Activity{
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.home);
final ProgressDialog progressBar;
if(isOnline()){
WebView webView = (WebView) findViewById(R.id.home_web);
webView.setBackgroundColor(Color.parseColor(getString(R.color.colore_bg)));
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setBuiltInZoomControls(true);
webView.getSettings().setPluginsEnabled(true);
webView.setWebViewClient(new MyWebViewClient());
progressBar = ProgressDialog.show(this,getString(R.string.caricamento),getString(R.string.attendere));
webView.setWebViewClient(new WebViewClient(){
public void onPageFinished(WebView view, String url) {
if (progressBar.isShowing()) {
progressBar.dismiss();
}
}
});
webView.loadUrl("http://www.mysite.com/android.php");
}else{
Toast.makeText(this,getString(R.string.no_connessione),Toast.LENGTH_LONG).show();
}
}
private class MyWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
System.out.println("here");
if (Uri.parse(url).getHost().equals("mysite.com")) {
// This is my web site, so do not override; let my WebView load the page
return false;
}
// Otherwise, the link is not for a page on my site, so launch another Activity that handles URLs
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
startActivity(intent);
return true;
}
}
public boolean isOnline(){
ConnectivityManager cm=(ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo ni = cm.getActiveNetworkInfo();
if(ni==null){
return false;
}
return ni.isConnected();
}
}
가 shouldOverrideUrlLoading이 작동하지, 어느 쪽도 System.out에 인쇄하지 않습니다, 호출되지 않을 것으로 보인다. 어떻게 수리 할 수 있습니까? 기본 브라우저에서 모든 링크 (기본 페이지 www.mysite.com/iphone.php 제외)를 열어야합니다.
디부 오! 네가 맞아! 하지만 지금은 새로운 onPage에서 완료되었습니다 progressBar가 인식되지 않습니다 – Zak
아, 그게 진전이라고 선언 했으니까요 .Dialog를 작성 중입니다. 죄송합니다, 놓쳐 버렸습니다. 그것을 움직여 전역 변수가되고 황금이되게하십시오. 이를 반영하기 위해 원래의 대답을 수정했습니다. – jimmithy
네, 진행 상황을 보여주기 위해 addo onPageStarted를했습니다. 그것은 작동합니다! 고마워. – Zak