0

Web ブラウザに似たアプリを開発しています。WebView を介して表示された Web ページで電子メール アドレスをクリックすると、次のようになります。

  1. 選択できる電子メールクライアントのセットが表示されます
  2. webview は「mailto:abc@xyz.com」という URL を読み込もうとし、URL が見つからない場合はエラー ページを表示します。

No.2の問題を解決する方法を見つけようとしています。

基本的に、「mailto:」を含む URL をアプリで読み込む必要はありません。

これが私がやろうとしたが失敗したことです:

  1. 「shouldOverrideUrlLoading()」の下で、

    if( url.startsWith("mailto") )
    {
        /*Do the stuff for sending email but i will not display */
         url = null;
    }
    
  2. view.loadurl(url) の前に、

    if( !url.startsWith("mailto:") )
         view.loadurl(url);
    

これらはハックであり、あまりエレガントではないことはわかっています。したがって、誰かが私を正しい道に導くことができますか?

ありがとうございました。

4

2 に答える 2

0

return true;inshouldOverrideUrlLoading()メソッドを使用してみてください。:)

于 2012-11-03T15:04:39.733 に答える
0

Ravi Bhatt の答えは正しいです。関数の最後に true を返す必要があります。

ただし、http または https を含む URL を手動で取得し、その URL をロードする必要があります。ここに私が意味するものがあります:

shouldOverrideUrlLoading() の下で、

else if( url.startsWith("http:") || url.startsWith("https:") )
{
    view.loadUrl(url); //u can use the default webview or your own webview            
}

/*At the end of the function*/                
return true;

return false をどこかに入れると、それも機能しません。url = null も役に立ちません。

これが、私と同様の問題を抱えている他の誰かに役立つことを願っています。

于 2012-11-05T01:13:26.773 に答える