2014-07-23 1 views
0

webview를 사용하는 Android 앱이 있습니다. 제가 사용하고있는 여러 가지 양식에는 첫 번째 요소에 자동 초점 기능이 있습니다. 원하는 것은 폼이로드 될 때 관련 키보드를 표시하는 것입니다. 액티비티의 코드는 다음과 같습니다.웹 뷰에서 자동 포커스 키보드 표시

public class MyActivity extends DroidGap { 
/** 
* Called when the activity is first created. 
*/ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    //load the main app 
    loadUrl("file:///android_asset/www/index.html"); 
} 

@Override 
public void init() { 
    final String version = getVersion(); 
    CordovaWebView webView = new CordovaWebView(this); 
    init(webView, new CordovaWebViewClient(this, webView) { 
     @Override 
     public boolean shouldOverrideUrlLoading(WebView view, String url) { 
      super.onPageFinished(view, url); 
      boolean redirected = false; 
      //If the page you're accessing is the login page 
      if (url.endsWith("/Login")) { 
       //redirect to root page with query string 
       appView.loadUrl(url + "?version=" + version)); 
       redirected = true; 
      } 

      return redirected; 
     } 
    }, new CordovaChromeClient(this, webView)); 
    } 
} 

기본적으로 앱 인덱스 페이지 위의 코드가로드됩니다. 로그인 버튼을 클릭하면로드 된 URL에 앱 버전이 추가되고 (관련없는 이유로) 로그인 페이지가 표시됩니다. 페이지가로드 될 때 필드 안에 커서가 표시되지만 필드를 누를 때까지 키보드가 표시되지 않습니다.

나는 this question을 보았지만 답변을 적용하는 방법을 알 수 없었다. 도움을 주시면 대단히 감사합니다.

답변

0

나는

   @Override 
       public void onPageFinished(WebView view, String url) { 
        super.onPageFinished(view, url); 
        // Display the keyboard automatically when relevant 
        if (view.getTitle().equals("Login")) { 
         InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); 
         imm.showSoftInput(view, 0); 
        } 
       } 
를 사용하여 종료
관련 문제