2017-02-02 15 views
0

webviewを使用している私のアプリケーションのカスタムエラーメッセージを作成しようとしています。これまで私は非常に最小限の問題を持っている下のコードを使用しています...私はwebview上のリンクをクリックすると、クリックされたリンクを処理する代わりに、同じページをリロードしています。それは私が疑われる、誰かが私を助けることができるサンプルのダウンロードリンクにwebviewでカスタムエラーメッセージを表示する方法

protected void fetch_web(){ 
    final WebView web; 
    web = (WebView) findViewById(R.id.voice_mail_view_port); 
    NoNetwork = (Button) findViewById(R.id.btn_no_internet); 
    NoNetwork.setVisibility(View.GONE); 
    String mdb = "http://192.168.23.1/default.php"; 

    getWindow().setFeatureInt( Window.FEATURE_PROGRESS, Window.PROGRESS_VISIBILITY_ON); 
    final Activity MyActivity = this; 
    web.setWebChromeClient(new WebChromeClient() { 
     public void onProgressChanged(WebView view, int progress) 
     { 

      MyActivity.setTitle("Fetching feeds..."); 
      MyActivity.setProgress(progress * 100); 

      loader(); 

      if(progress == 100) { 
       MyActivity.setTitle(R.string.app_name); 
       deLoader();; 
      } 
     } 
    }); 
    web.setWebViewClient(new WebViewClient() { 
     public void onReceivedError(WebView view, int errorCode, String description, String 
       failingUrl) { 
      deLoader(); 
      alert("No Internet Connection","Let's get connected to see feeds"); 
      web.setVisibility(View.GONE); 
      NoNetwork.setVisibility(View.VISIBLE); 
     } 
    }); 
    web.getSettings().setJavaScriptEnabled(true); 
    web.loadUrl((mdb)); 
} 
protected void loader(){ 
    loading = (ProgressBar) findViewById(R.id.loader); 
    loading.setVisibility(View.VISIBLE); 
} 
protected void deLoader(){ 
    loading = (ProgressBar) findViewById(R.id.loader); 
    loading.setVisibility(View.INVISIBLE); 
} 

http://192.168.23.1/download.php?id=1

をダウンローダオプションを同じアプリを使用してダウンロードするか、開く必要がありますいずれかのように、WebViewの上の私のリンクは、ダウンロードリンクあり私のエラーは、ここに

web.setWebViewClient(new WebViewClient() { 
    public void onReceivedError(WebView view, int errorCode, String description, String 
      failingUrl) { 
     deLoader(); 
     alert("No Internet Connection","Let's get connected to see feeds"); 
     web.setVisibility(View.GONE); 
     NoNetwork.setVisibility(View.VISIBLE); 
    } 
}); 

答えて

0

他のブラウザ

でリンクを開くには、アプリを強制的に試してみてくださいから来ています
Intent intent= new Intent(Intent.ACTION_VIEW,Uri.parse(url)); 
startActivity(intent); 

これが失敗した場合は、より多くのことを教えてください。

+0

完璧な作業。ありがとう – LazyLoading

関連する問題