2016-09-04 3 views
0

webView에서 웹 URL을로드합니다. 나는 web.who의 특정 버튼의 기능을 변경하여 버튼에 액세스하고 해당 기능을 변경하려고합니까? 당신의 WebViewClient에서webView에서 버튼의 기능 변경

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) 내부에 중단 점을 넣고 웹보기로드 버튼을 클릭 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

내가 이해할 수 있습니다 당신은 나에게 예를 든다. –