2012-03-20 7 views
2

私はwebviewclientを使用してhtmlページを開きます。 HTMLページにアンカータグがあります。 アンカータグをクリックすると、自分の電話ダイヤルアクティビティを開始する必要があります。 外部のブラウザ(アンドロイドのデフォルトブラウザ)でこのアンカータグをクリックすると、電話機のダイヤラが起動しますが、webviewclient(私のアプリケーションではブラウザ)を使用しています。私は電話ダイヤラを起動できません。Webビュークライアントからダイヤラーアクティビティを開くには?

webviewclientを使用してこれを達成する方法はありますか?

答えて

1

あなたはこの方法にWebViewClientで

public boolean shouldOverrideUrlLoading(WebView wv, String url) 
{ 
    if(isNumber) 
    { 
     //Get the number from the URL 
     Intent intent = new Intent(Intent.ACTION_DIAL); 
     intent.setData(Uri.parse("tel:12345")); 
     startActivity(intent); 
     return true; 
    } 
    return false; 
} 

をオーバーライドして、あなたはWebViewののではなく、自分でこれを処理することを意味しますトゥーレを返す必要があります。

文書はhereです。

+0

、私はそれが動作し..おかげで.. – RockandRoll

+0

@dreamtaleました:ISNUMBERはここ何ですか?そして上記のメソッドを呼び出す方法は? – YuDroid

+0

@YuDroid isNumberは、URLに電話番号があるかどうかを調整する単なる方法です。 shouldOverrideUrlLoadingメソッドは、WebviewClientのオーバーライドメソッドです。あなたはアンドロイドの文書を参照することができます詳細(上記の答えの最後を参照してください) – dreamtale

0

私はこれを行うための最良の方法だと思います。だから、これを試してみてください、私は私がこれを返信するには遅すぎだ知っている:

webView.setWebViewClient(new WebViewClient() { 

     @Override 
     public boolean shouldOverrideUrlLoading(WebView view, String url) { 
      if(URLUtil.isNetworkUrl(url)) { 
       view.loadUrl(url); 
       return false; 
      } 

      Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); 
      startActivity(intent); 
      return true; /* 
      return false;*/ 
     } 
関連する問題