Android에서 문자열을 반환하는 JavaScript 함수를 얻는 방법은 무엇입니까?

jeramay10

내 안드로이드 앱의 JavaScript 함수에서 반환 문자열을 토스트하고 싶었습니다. 며칠 동안 몇 가지 코드를 검색하고 시도했지만 올바른 코드를 찾을 운이없는 것 같습니다.

다음은 문자열 값을 반환하기 위해 Android에서 호출하려는 JS 함수입니다.

function myFunction()
    {
        var str= document.getElementsByName('txt')[0].value;    
        window.android.myFunction(str); 
    }

MainActivity.java

        //create interface
        JsInterface jsInterface = new JsInterface();

        wv.setWebViewClient(new WebViewClient());
        wv.setWebChromeClient(new WebChromeClient());
        wv.getSettings().setJavaScriptEnabled(true);

        //add interface
        wv.addJavascriptInterface(jsInterface, "android");//android is the keyword that will be exposed in js

        //load file
        wv.loadUrl("file:///android_asset/test.html");

 Toast.makeText(getApplicationContext(), myFunction(), Toast.LENGTH_LONG);        
    }

    //javascript interface
    private class JsInterface{
        public String myFunction(String msg){
            return msg;
        }
    }

저는 이런 종류의 플랫폼과 Javascript의 초보자입니다. 대답 해주신 분들께 감사드립니다. 감사.

미하일 나가 노프

코드를 다음과 같이 변경해야한다고 생각합니다.

  1. JavaScript 함수를 실행하여 WebViewClient.onPageFinished문서가 실제로로드되었는지 확인하고이를 실행하려면 URL loadUrl()과 함께 함수를 사용하십시오 javascript:.

    wv.setWebViewClient(new WebViewClient() {
        @Override
        void onPageFinished(WebView view, String url) {
            view.loadUrl("javascript:myFunction();void(0);");
        }
    }
    
  2. 주석으로 노출하려는 Java 메서드에 @JavascriptInterface주석 달고 ( void실제로 JavaScript로 아무것도 반환하지 않으려는 경우) Toast.makeText()내부에서 호출 하되 삽입 된 Java 메서드 때문에 UI 스레드로 전환해야합니다. 전용 백그라운드 스레드에서 실행 :

    private class JsInterface {
        private Context mContext;
    
        JsInterface(Context context) {
            mContext = context;
        }
    
        @JavascriptInterface
        public void myFunction(String msg) {
            new Handler(Looper.getMainLooper()).post(new Runnable() {
                @Override
                public void run() {
                    Toast.makeText(mContext, msg, Toast.LENGTH_LONG);
                }
            });
        }
    }
    
  3. 그리고 JsInterface생성시 응용 프로그램 컨텍스트를 전달하십시오 .

    JsInterface jsInterface = new JsInterface(getApplicationContext());
    

또한라는 두 가지 기능이 있습니다 myFunction주입 된 객체의 하나를 통해 사용할 수 : 귀하의 자바 스크립트를 android.myFunction(), 당신은 자신을 정의 된 하나, 그냥으로 사용할 수 myFunction()또는 window.myFunction(). 혼동을 피하기 위해 실제로 다른 이름을 사용하는 것이 좋습니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

배열을 반환하는 JavaScript에서 함수를 작성하는 방법은 무엇입니까?

분류에서Dev

문자열을 함수에 전달하고 정수를 반환하는 방법은 무엇입니까?

분류에서Dev

함수에서 인수 문자열을 얻는 방법은 무엇입니까?

분류에서Dev

React : Javascript Calculator : switch 문에서 함수를 반환하는 방법은 무엇입니까?

분류에서Dev

쉘 함수에서 숫자와 문자열을 반환하는 가장 좋은 방법은 무엇입니까?

분류에서Dev

함수에서 다른 함수로 문자열을 반환하는 방법은 무엇입니까?

분류에서Dev

Javascript로 URL에서 JSON 문자열을 얻는 방법은 무엇입니까?

분류에서Dev

javascript 또는 jquery에서 문자열을 함수로 사용하는 방법은 무엇입니까?

분류에서Dev

주 함수에서 문자열을 반환하는 방법은 무엇입니까?

분류에서Dev

C ++의 문자열 함수에서 값을 반환하지 않는 방법은 무엇입니까?

분류에서Dev

Java의 재귀 함수에서 특정 문자열을 반환하는 방법은 무엇입니까?

분류에서Dev

멤버 함수에서 개인 문자 배열을 반환하는 방법은 무엇입니까?

분류에서Dev

.cs 파일에서 javascript 함수로 xml 문자열을 전달하는 방법은 무엇입니까?

분류에서Dev

JavaScript에서 단어 또는 문자열의 마지막 문자를 얻는 방법은 무엇입니까?

분류에서Dev

Java의 값을 기반으로 문자열에서 수직 문자를 얻는 방법은 무엇입니까?

분류에서Dev

JavaScript의 배열에서 최대 수를 얻는 방법은 무엇입니까?

분류에서Dev

Android에서 특수 문자로 분할 문자열을 얻는 방법은 무엇입니까?

분류에서Dev

스텁 함수에서 반환 값을 얻는 방법은 무엇입니까?

분류에서Dev

JavaScript : 비동기 내부 함수 내에서 외부 함수를 반환하는 방법은 무엇입니까?

분류에서Dev

javascript / nodejs 함수 내에서 함수를 반환하는 방법은 무엇입니까?

분류에서Dev

Javascript의 다른 함수에서 반환 값을 사용하는 방법은 무엇입니까?

분류에서Dev

Javascript에서 16 진수 문자열을 바이트로, 바이트를 16 진수 문자열로 변환하는 방법은 무엇입니까?

분류에서Dev

Javascript를 사용하여 주어진 문자열에서 n 번째 하위 문자열 집합을 얻는 방법은 무엇입니까?

분류에서Dev

문자열을 입력으로 받고 R에서 요일의 벡터를 반환하는 함수를 만드는 방법은 무엇입니까?

분류에서Dev

C #에서 문자열과 요소 목록을 함께 반환하는 방법은 무엇입니까?

분류에서Dev

Javascript에서 배열을 문자열 화하는 방법은 무엇입니까?

분류에서Dev

Javascript-배열에서 가장 큰 4 개의 숫자를 반환하는 방법은 무엇입니까?

분류에서Dev

jQuery : 'this'를 포함하는 함수 외부에서 값을 반환하는 방법은 무엇입니까?

분류에서Dev

병렬 요청을 수행하고 Javascript에서 모든 병렬 응답을 포함하는 객체를 반환하는 방법은 무엇입니까?

Related 관련 기사

  1. 1

    배열을 반환하는 JavaScript에서 함수를 작성하는 방법은 무엇입니까?

  2. 2

    문자열을 함수에 전달하고 정수를 반환하는 방법은 무엇입니까?

  3. 3

    함수에서 인수 문자열을 얻는 방법은 무엇입니까?

  4. 4

    React : Javascript Calculator : switch 문에서 함수를 반환하는 방법은 무엇입니까?

  5. 5

    쉘 함수에서 숫자와 문자열을 반환하는 가장 좋은 방법은 무엇입니까?

  6. 6

    함수에서 다른 함수로 문자열을 반환하는 방법은 무엇입니까?

  7. 7

    Javascript로 URL에서 JSON 문자열을 얻는 방법은 무엇입니까?

  8. 8

    javascript 또는 jquery에서 문자열을 함수로 사용하는 방법은 무엇입니까?

  9. 9

    주 함수에서 문자열을 반환하는 방법은 무엇입니까?

  10. 10

    C ++의 문자열 함수에서 값을 반환하지 않는 방법은 무엇입니까?

  11. 11

    Java의 재귀 함수에서 특정 문자열을 반환하는 방법은 무엇입니까?

  12. 12

    멤버 함수에서 개인 문자 배열을 반환하는 방법은 무엇입니까?

  13. 13

    .cs 파일에서 javascript 함수로 xml 문자열을 전달하는 방법은 무엇입니까?

  14. 14

    JavaScript에서 단어 또는 문자열의 마지막 문자를 얻는 방법은 무엇입니까?

  15. 15

    Java의 값을 기반으로 문자열에서 수직 문자를 얻는 방법은 무엇입니까?

  16. 16

    JavaScript의 배열에서 최대 수를 얻는 방법은 무엇입니까?

  17. 17

    Android에서 특수 문자로 분할 문자열을 얻는 방법은 무엇입니까?

  18. 18

    스텁 함수에서 반환 값을 얻는 방법은 무엇입니까?

  19. 19

    JavaScript : 비동기 내부 함수 내에서 외부 함수를 반환하는 방법은 무엇입니까?

  20. 20

    javascript / nodejs 함수 내에서 함수를 반환하는 방법은 무엇입니까?

  21. 21

    Javascript의 다른 함수에서 반환 값을 사용하는 방법은 무엇입니까?

  22. 22

    Javascript에서 16 진수 문자열을 바이트로, 바이트를 16 진수 문자열로 변환하는 방법은 무엇입니까?

  23. 23

    Javascript를 사용하여 주어진 문자열에서 n 번째 하위 문자열 집합을 얻는 방법은 무엇입니까?

  24. 24

    문자열을 입력으로 받고 R에서 요일의 벡터를 반환하는 함수를 만드는 방법은 무엇입니까?

  25. 25

    C #에서 문자열과 요소 목록을 함께 반환하는 방법은 무엇입니까?

  26. 26

    Javascript에서 배열을 문자열 화하는 방법은 무엇입니까?

  27. 27

    Javascript-배열에서 가장 큰 4 개의 숫자를 반환하는 방법은 무엇입니까?

  28. 28

    jQuery : 'this'를 포함하는 함수 외부에서 값을 반환하는 방법은 무엇입니까?

  29. 29

    병렬 요청을 수행하고 Javascript에서 모든 병렬 응답을 포함하는 객체를 반환하는 방법은 무엇입니까?

뜨겁다태그

보관