2012-03-06 15 views
1
package com.example.t2noob; 


import android.app.Activity; 
import android.content.Context; 
import android.content.Intent; 
import android.net.ConnectivityManager; 
import android.net.NetworkInfo; 
import android.net.Uri; 
import android.os.Bundle; 
import android.view.KeyEvent; 
import android.view.View; 
import android.webkit.WebView; 
import android.webkit.WebViewClient; 
import android.widget.Button; 
import android.widget.Toast; 

public class Activity extends Activity 
{ 
public boolean shouldOverrideUrlLoading(WebView view, String url) { 
    if (url.startsWith("tel:")) { 
      Intent intent = new Intent(Intent.ACTION_DIAL, 
        Uri.parse(url)); 
      startActivity(intent); 
    }else if(url.startsWith("http:") || url.startsWith("https:")) { 
     view.loadUrl(url); 
    } 
    return true; 
    } 



    WebView mWebView; 




    public void onCreate(Bundle paramBundle) 
    { 



     super.onCreate(paramBundle); 
     requestWindowFeature(1); 
     getWindow().setFlags(1024, 1024); 
     setContentView(2130903040); 
     final Button button = (Button) findViewById(R.id.Home);//BUTTONS ON TOP OF WEBVIEW. HOME 
     button.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 
      mWebView.loadUrl("test.com"); 
      } 
     }); 
     final Button button1 = (Button) findViewById(R.id.Back);//BUTTONS ON TOP OF WEBVIEW. BACK 
     button1.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 
      mWebView.goBack(); 
      } 
      }); 

     this.mWebView = ((WebView)findViewById(2131034112)); 
     this.mWebView.getSettings().setJavaScriptEnabled(true); 
     this.mWebView.setWebViewClient(new WebViewClient()); 
     this.mWebView.getSettings().setJavaScriptEnabled(true); 
     this.mWebView.setVerticalScrollBarEnabled(true); 
     this.mWebView.setHorizontalScrollBarEnabled(true); 
     this.mWebView.loadUrl("test.com"); 
     this.mWebView.getSettings().setLoadWithOverviewMode(true); 

     } 


     public boolean onKeyDown(int paramInt, KeyEvent paramKeyEvent)//LETS USER PUSH BACK BUTTON ON PHONE TO GO BACK A PAGE IN WEBVIEW. 
     { 
     boolean bool; 
     if ((paramInt != 4) || (!this.mWebView.canGoBack())) 
     { 
    bool = super.onKeyDown(paramInt, paramKeyEvent); 
} 
else 
{ 
    this.mWebView.goBack(); 
    bool = true; 
} 
return bool; 
} 

} 

ので、私は 、オープンを読み違えていなかった場合 をshoudOverrideUrlLoading機能がWebViewの中でそれらを開くためにWebリンクの両方をキャッチする必要があります上記のソースコードを持っていますアンドロイドダイヤラで電話番号を入力します。上記のコードで 私はwebviewで開くためのリンクを得ることができますが、それはダイヤラーで数字を開くことはありません。 このコードをプログラムに追加するとします。オープンダイヤラとのWebViewで開くWebリンク[エラー]アンドロイド

private static final WebViewClient Webview = null; 
this.mWebView.setWebViewClient(Webview); 

ダイヤラーを開くことはできますが、Webリンクは開いていませんが、実際にはデフォルトのブラウザで開きます。 だから私はそれを取得する方法のいくつかの助けがダイヤルやwebviewのWebリンクで電話番号を開くだけでなく、どちらかを持っています。

答えて

0

使用この

private class HelloWebViewClient extends WebViewClient { 
@Override 
public boolean shouldOverrideUrlLoading(WebView view, String url) { 
    if(url.contains("tel:")) 
    { 
    //make the substring with the telephone number, and invoke intent for dialer 
    } 
else 
    view.loadUrl(url); 
    return true; 
} 

}

と設定Web表示用クライアント

this.mWebView.setWebViewClient(new HelloWebViewClient()); 

これは、リンクがブラウザを同じWebビューで開かれ、およびされていないことを確認しますように。 注:他のすべてのsetWebViewClient()の使用を削除してください

編集:これは解決します!

+0

これはwebviewで開かれているリンクを修正するはずですが、webviewと電話番号、smsで開いているWebリンクをそれぞれダイヤラとメッセージングアプリケーションを開きたいと思っています。あなたのコードでは、webviewのリンクを開くだけですが、数字がクリックされたときにダイヤラーを開くことはありません(実際にあなたのコードを持っていましたが、数字をクリックしたときにダイヤラーを開くために私は何か間違っているかどうかを知りたがっていました。電話番号とWebリンクの両方を取得していないためです。それはちょうどどちらか他をします。 – user1251268

+0

if(url.contains( "tel:")){//サブストリングを作成し、ダイヤルするインテントを呼び出し、elseではview.loadUrl(url)を使用します。 } とった? – nithinreddy

+0

私は機能がすべて正常に機能するように修正した後、私が自分の機能を設定する方法と関係がありました。ご協力いただきありがとうございます。 – user1251268

関連する問題