2012-04-26 5 views
0

트위터에 트윗을 게시 할 수있는 안드로이드 응용 프로그램에서 작업 중이며 웹보기 위젯으로 작업하고 있습니다. 사용자가 로그인하지 않은 경우 로그인 화면으로 이동하고 로그인 한 사용자가 트윗 페이지로 이동합니다. 내 요구 사항은 내 신청서에서 트윗 한 후에해야합니다. 내 신청서로 돌아 가기. WebView를 통해이 상황을 어떻게 처리 할 수 ​​있습니까? 내 WebView에서 리디렉션 URL을 어떻게 얻습니까?WebView 탐색 이벤트 받기

도와주세요.

내 코드를 들여다하십시오

public class TestTwittershareActivity extends Activity { 
    WebView webview; 

    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     webview = (WebView) findViewById(R.id.webview); 
     webview.getSettings().setJavaScriptEnabled(true); 
     webview.loadUrl("http://www.twitter.com?status="); 
     webview.setWebViewClient(new HelloWebViewClient()); 
    } 

    public boolean onKeyDown(int keyCode, KeyEvent event) { 
     if ((keyCode == KeyEvent.KEYCODE_BACK) && webview.canGoBack()) { 
      webview.goBack(); 
      return true; 
     } 
     return super.onKeyDown(keyCode, event); 
    } 

    private class HelloWebViewClient extends WebViewClient { 
     @Override 
     public boolean shouldOverrideUrlLoading(WebView view, String url) { 
      view.loadUrl(url); 

      return true; 
     } 
    } 
} 
+1

"내 응용 프로그램에서 트윗 한 후에 내 응용 프로그램으로 돌아와야합니다." 그게 무슨 뜻 이니? 사용자가 응용 프로그램에서 webview에 있으므로 어디로 가야합니까? – THelper

+0

답장을 보내 주셔서 감사합니다. 트위터를 올린 후 다른 활동으로 리디렉션 할 수 있습니다. 어떤 경우에 다른 활동을 호출 할 수 있습니다. – Arun

답변

2

을 내가 정확히, 당신은 사용자가 자신의 트윗을 전송하여 수행 여부를 확인하는 방법이 필요합니다 당신의 문제를 이해합니다. 가장 좋은 방법은 웹보기에로드되는 URL을 확인하는 것입니다. 다행히도,이 URL에는 트윗이 완료되었다는 표시가 있습니다 (상태 부분에 뭔가있을 수 있습니다). URL을 확인하려면 이미 작성한 HelloWebViewClient 클래스를 사용하고 onPageFinished 메소드를 대체 할 수 있습니다. 예 :

사용자가 완료 한 URL을 기반으로 감지 할 수없는 경우 상황이 훨씬 더 복잡합니다. 이 경우 extract the html of the loaded page 수있는 자바 스크립트를 추가하려고 할 수 있으며 사용자가 완료되면 단서를 찾으려면 html 구문 분석해야합니다.

+0

답변 해 주셔서 감사합니다 .... – Arun