webView를 사용하여 화면을 보여줄때...
wb과 app과의 인터페이스가 필요할때가 있었다.
1. web페이지에서 app을 호출할 경우는 다음과 같다.
step 1 : 웹페이지
function reqMsg(arg){ window.AndroidFunction.sendMessage(arg); } |
step 2 : app에서의 activity
_wvNews = (WebView)findViewById(R.id.webView); _wvNews.getSettings().setJavaScriptEnabled(true); _wvNews.getSettings().setLoadsImagesAutomatically(true); _wvNews.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE); _wvNews.getSettings().setLoadWithOverviewMode(true); _wvNews.setWebViewClient(new WebViewClientClass()); _wvNews.addJavascriptInterface(new WebAppInterface(this), "AndroidFunction"); _wvNews.loadUrl("http://www.test.co.kr/~testUser/test.html"); public class WebAppInterface { Context mContext; /** Instantiate the interface and set the context */ WebAppInterface(Context c) { mContext = c; } /** Show a toast from the web page */ @JavascriptInterface public void sendMessage(final String msg) { MainActivity.this.runOnUiThread(new Runnable() { public void run() { Log.e(TAG, "msg= " + msg); } }); } } |
2. app에서 webpage의 javascript 호출 시...
step 1 : 웹페이지
function recvAndroidMsg(arg){ document.getElementById("title").innerHTML = arg; }
|
step 2 : app에서의 activity
_wvNews.loadUrl("javascript:recvAndroidMsg('"+purchase.getSku()+"')"); |
'Android' 카테고리의 다른 글
URL 파일 확인. (0) | 2016.01.12 |
---|---|
GridLayout (0) | 2015.07.06 |
Android Eclipse - Could not find *.apk (0) | 2014.12.10 |
android case expressions must be constant expressions (0) | 2014.12.10 |
java.nio.BufferOverflowException (0) | 2014.10.29 |