2016-09-04 8 views
0

webViewにWeb URLをロードします。私はボタンにアクセスし、その機能を変更するweb.whoの特定のボタンの機能を変更したいですか?あなたのWebViewClientwebViewのボタンの機能を変更します。

public class MainActivity extends AppCompatActivity { 
    WebView mWebView; 
    String URl = "http://comingup.review/user"; 

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

     getSupportActionBar().hide(); 

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


     WebSettings webSettings = mWebView.getSettings(); 
     webSettings.setJavaScriptEnabled(true); 
     mWebView.loadUrl(URl); 
     mWebView.setWebViewClient(new WebViewClient() 
     ); 
    } 

    @Override 
    public void onBackPressed() { 
     if (mWebView.canGoBack()) { 
      mWebView.goBack(); 
     } else { 
      super.onBackPressed(); 
     } 
    } 
} 

答えて

0

shouldOverrideUrlLoading(WebView view, String url)内のブレークポイントを入れて、あなたがボタンをクリックしたときのWebViewをロードするURLが何であるかを確認してください。

 @Override 
     public boolean shouldOverrideUrlLoading(WebView view, String url) { 
      return false; // put here breakpoint 
     } 

ボタンをクリックすると、webviewによって別のURLにリダイレクトされ、ブレークポイントに表示されます。このURLをコピーしてください。

それ後、shouldOverrideUrlLoading(WebView view, String url)内にこれを置く:

 @Override 
     public boolean shouldOverrideUrlLoading(WebView view, String url) { 
      if (JavaUtils.equals(url, "url from button click")) { 
       // do whatever you need 
       return true; 
      } 

      return false; 
     } 

例えば:

public boolean shouldOverrideUrlLoading(WebView view, String url) { 
     if (JavaUtils.equals(url, "about:blank")) { 
      finish(); 
      return true; 
     } 
     return false; 
    } 

私はそれをチェックしませんでしたが、それは動作するはずです...

+0

私は理解できないことができます私に例を与える –

関連する問題