2017-10-18 5 views
-1

私はコーディングには非常に新しく、webview appの作成に関するガイドに従っています。 何かをクリックしてブラウザを開くがウェブビューアプリに残るまで、ホームページは完璧に表示されます。Webappの表示ブラウザのリンクを開く

私は他の投稿(How can I force a webview app to open links in it instead of open them in the default android browser depending on the domain?)に従いましたが、Webviewclient、webview、uri、intent、Startactityは記号を解決できません。だから私はチュートリアルのコードが異なって見えるので、それは私を制限するコードの何か他のものがあったか、または私が作成する必要があるいくつかのことがありますか?ここに私のアクティビティコードは(私はURL名を削除)です。

import android.app.Activity; 
import android.app.AlertDialog; 
import android.content.DialogInterface; 
import android.graphics.Bitmap; 
import android.os.Bundle; 
import android.view.KeyEvent; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.webkit.WebSettings; 
import android.webkit.WebView; 
import android.webkit.WebViewClient; 
import android.widget.ProgressBar; 

public class MainActivity extends Activity { 
    private WebView mWebView; 
    ProgressBar progressBar; 


    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.activity_main); 

      mWebView = (WebView) findViewById(R.id.activity_main_webview); 

      progressBar = (ProgressBar) findViewById(R.id.progressBar1); 

      WebSettings webSettings = mWebView.getSettings(); 
      webSettings.setJavaScriptEnabled(true); 
      mWebView.loadUrl("https://www..com"); 

    } 
} 
+2

[webviewアプリに強制的にリンクを開くのではなく、ドメインに応じてデフォルトのアンドロイドブラウザ?](https://stackoverflow.com/questions/14633367/how-can-i-force-a-webview-app-to-open-links-in-it-instead-of -open-them-in-the-de) – Shark

+0

私はそれを試みたが動作しなかった。 Iは以下でWebViewClientクラスを作成する場合: パブリッククラスMyWebViewClientはWebViewClient { @OverrideパブリックブールshouldOverrideUrlLoading(WebViewの表示、文字列のURL){ view.loadUrl(URL)を拡張。 がtrueを返します。 } } ここで、アクティビティコードでこれを行う必要がありますか? webview.setWebViewClient(new MyWebViewClient()); – Von

答えて

-1
mWebview.setWebViewClient(new WebViewClient() { 
    public boolean shouldOverrideUrlLoading(WebView view, String url){ 
     // do your handling codes here, which url is the requested url 
     // probably you need to open that url rather than redirect: 
     view.loadUrl(url); 
     return false; // then it is not handled by default action 
    } 
}); 
+0

は、オーバーライドされたメソッドからfalseを返します。 –

0

あなたは、この使用することができます:あなたのリンクを例:mailtoによってで始まる場合は、Gmailアプリを開きます

private class MyBrowser extends WebViewClient { 
     @Override 
     public boolean shouldOverrideUrlLoading(WebView view, String url) { 
      if (url.startsWith("tel:") || url.startsWith("sms:") || url.startsWith("smsto:") || url.startsWith("mailto:") || url.startsWith("mms:") || url.startsWith("mmsto:") || url.startsWith("market:") || url.startsWith("https://youtu.be/")) { 
       Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); 
       startActivity(intent); 
       return true; 
      } else { 
       view.loadUrl(url); 
       return true; 
      } 
     } 
    } 

を。追加しないと、電子メールアドレスは開かれません。その場合、url.startsWith("https://youtu.be/")を追加してYouTubeにリンクしている場合は、YouTubeビューを読み込むのではなくYoutubeを開きます。

関連する問題