티스토리 뷰

반응형

Stack Overflow에 자주 검색, 등록되는 문제들과 제가 개발 중 찾아 본 문제들 중에서 나중에도 찾아 볼 것 같은 문제들을 정리하고 있습니다.

Stack Overflow에서 가장 먼저 확인하게 되는 가장 높은 점수를 받은 Solution과 현 시점에 도움이 될 수 있는 가장 최근에 업데이트(최소 점수 확보)된 Solution을 각각 정리하였습니다.

 

아래 word cloud를 통해 이번 포스팅의 주요 키워드를 미리 확인하세요.

JavaScript not working in Android Webview?

안드로이드 WebView에서 JavaScript가 작동하지 않는 경우?

 문제 내용 

I'm trying to make an Android version of a relativly simple iOS app that uses a webview, some buttons and then relies on javascript calls to a CMS.

저는 웹뷰, 몇 개의 버튼 및 CMS로의 JavaScript 호출을 사용하는 비교적 간단한 iOS 앱의 안드로이드 버전을 만들려고 노력하고 있습니다.

 

But I'm stuck at a pretty early point of development: The webview doesn't function with javascript.I've read a lot of posts about how to enable JS in an Android webview, but no luck so far.

그러나 개발 초기 단계에서 막혀있습니다. 안드로이드 WebView에서 JavaScript를 활성화하는 방법에 대한 많은 게시물을 읽었지만 아직 성공하지 못했습니다.

 

Below is some of my code:

아래는 내 코드의 일부입니다:
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    mWebView = (WebView) findViewById(R.id.webview);
    mWebView.getSettings().setJavaScriptEnabled(true);
    mWebView.setWebChromeClient(new WebChromeClient());
    mWebView.setWebViewClient(new HelloWebViewClient()
    {
        @Override  
        public void onPageFinished(WebView view, String url)  
        {  
            //Calling an init method that tells the website, we're ready 
            mWebView.loadUrl("javascript:m2Init()");
            page1(mWebView);
        }  
    });
  mWebView.loadUrl("http://my_url/mobile/iphone//app.php");  
}

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

}


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

public void page11(View view)
{
    mWebView.loadUrl("javascript:m2LoadPage(1)");
}

 

What am I doing wrong here? The URL is working perfectly in my iOS app, and in a browser. But not in my app!

여기서 무엇이 잘못되었나요? URL은 내 iOS 앱과 브라우저에서 완벽하게 작동합니다. 그러나 내 앱에서는 작동하지 않습니다!

 

Please tell me it's something obvious...

아마도 뭔가 명백한 것이 아니길 바랍니다 ...

 

 

 

 높은 점수를 받은 Solution 

FIXED! Spurred on by the error, I found out that I needed to set

문제가 해결되었습니다! 오류로 인해 자극받아, 내가 설정해야했던 것은 다음과 같습니다.

 

setDomStorageEnabled(true)

for the webview settings.

웹뷰 설정에 사용됩니다.

 

Thanks for your help Stephan :)

스테판, 도와줘서 고마워요 :)

 

 

 

 가장 최근 달린 Solution 

Mainly, these three lines will be enough to make the Javascipt work in webView...

Webview 설정을 위해 아래 3줄을 추가하면 충분합니다.
webSetting.setJavaScriptEnabled(true);
webView.setWebChromeClient(new WebChromeClient());
webView.setWebViewClient(new WebViewClient());

 

If it's not working after that also, then add below line also.

그래도 작동하지 않는 경우 아래 라인을 추가하십시오.
webSettings.setDomStorageEnabled(true);

 

Actually, you need both setJavaScriptEnabled() and setWebChromeClient(new WebChromeClient()) to make the JavaScript work. If you will use only webSetting.setJavaScriptEnabled(true); then it won't work.

실제로 JavaScript를 작동시키려면 setJavaScriptEnabled()와 setWebChromeClient(new WebChromeClient()) 두 가지를 모두 사용해야합니다. webSetting.setJavaScriptEnabled(true)만 사용하면 작동하지 않습니다.

 

 

 

출처 : https://stackoverflow.com/questions/7548172/javascript-not-working-in-android-webview

반응형
댓글
공지사항
최근에 올라온 글