2013-06-25 5 views
0

좋은 날,android WebView 및 자바 스크립트로 요청 제출

안드로이드의 webView에서 일부 로그인 세부 정보를 자동으로 채우려고합니다.

지금까지 내가 웹보기에로드 된 웹 사이트가, 내가 사용 :

webView.loadUrl("http://blabla"); 

는 지금은 로그인 정보를 입력해야합니다. 나는 다음 코드로 그렇게하려고했습니다 :

webView.loadUrl("javascript: {" 
        + " var y=document.getElementsByTagName('input');" 
        + " document.write('0:' + y[0].value + '<br>')" 
        + " y[0].value = '" + username + "';" 
        + " y[1].value = '" + password + "';}"); 

그러나 그것은 작동하지 않는, 그래서 난 내 자바 스크립트가 작동하는지 확인하는 간단한 작업을 시도했다. 그래서 나는 이것을 달렸다 :

webView.loadUrl("javascript:alert('hello');"); 

그러나 심지어 그것을 달리게하지 않는다.

WebSettings webSet = webView.getSettings(); 
    webSet.setJavaScriptEnabled(true); // enable java script 

을 내가 잘못하고 있어요 무엇 :

는 내가 웹보기 위해 JavaScript를 활성화해야? 감사합니다.

+0

자바 스크립트는()'.. 흠 .. [이 샘플을 체크 아웃] 당신의'webView.loadUrl에 추가 뭔가 (http://www.youtube.com/watch_popup?v=uVqp1zcMfbE&vq= 아니다 hd720 # t = 68) .... 이것은 앞으로 나아갈 아이디어를 줄 것입니다. – CRUSADER

답변

0

웹 뷰어에 웹 사이트가로드되면 JS를 실행해야합니다. 이 예제를 보니 answer입니다.

private final static String HOST = "..."; 
private WebView wb; 

@SuppressLint("SetJavaScriptEnabled") 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    requestWindowFeature(Window.FEATURE_NO_TITLE); 
    setContentView(R.layout.activity_home); 
    wb = (WebView) findViewById(R.id.home_webview); 
    WebSettings webSettings = wb.getSettings(); 
    webSettings.setJavaScriptEnabled(true); 
    wb.setWebViewClient(new WebViewClient(){ 
     public void onPageFinished(WebView view, String url){ 
         //Inject JS code here 
         wb.loadUrl("javascript:(function(){...})()"); 
     }   
    });  
    wb.loadUrl("http://"+HOST); 
} 

onPageFinished은/번로드 실행

0

당신이 자바 스크립트를 사용할 수와 WebChromeClient를 추가 했 완료?

또한 JavaScript를 페이지로드 후 실행하려면 WebViewClient-onPageFinished 내에 javascript를 넣어야합니다.

다음은 샘플입니다.

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    WebView wv = new WebView(this); 
    wv.getSettings().setJavaScriptEnabled(true); 
    wv.loadUrl("http://www.google.com"); 
    wv.setWebChromeClient(new WebChromeClient()); 
    wv.setWebViewClient(new WebViewClient(){ 
     public void onPageFinished(WebView view, String url) { 
      super.onPageFinished(view, url); 
      view.loadUrl("javascript:alert('hello');"); 
     } 
     public boolean shouldOverrideUrlLoading(WebView view, String url) { 
      view.loadUrl(url); 
      return true; 
     } 

    }); 

    setContentView(wv); 
} 
관련 문제