[°³¹ß Tip] WebView ¿¡¼ ÀÚ¹Ù ½ºÅ©¸³Æ® »ç¿ë¿¹ |
|
|
 |
8³â Àü |
1. WebView(¾Èµå·ÎÀ̵å) JavascriptÇÔ¼ö È£ÃâÇϱâ
webView.loadUrl("javascript:callJS('Android')");
Çü½Ä> javascript:È£Ãâ ¸Þ¼Òµå¸í
2. Javascript¿¡¼ Android È£ÃâÇϱâ
/** Object exposed to JavaScript */
private class AndroidBridge {
public void callAndroid(final String arg) { // must be final
handler.post(new Runnable() {
public void run() {
Log.d(TAG, "callAndroid(" + arg + ")");
textView.setText(arg);
}
});
}
}
1) ÀÚ¹Ù½ºÅ©¸³Æ®¸¦ »ç¿ë °¡´ÉÇϵµ·Ï ¼³Á¤ÇÑ´Ù.
webView.getSettings().setJavaScriptEnabled(true);
2) WebView¿¡ Javascript Interface¸¦ Ãß°¡ÇØÁØ´Ù.
webView.addJavascriptInterface(new AndroidBridge(),"AJInterface");
3) HTMLÆäÀÌÁö¿¡¼ ´ÙÀ½°ú °°Àº ¹æ½ÄÀ¸·Î È£ÃâÇÑ´Ù.
window.AJInterface.callAndroid('Hello from Browser')
AJInterface´Â addJavascriptInterfaceÀÇ µÎ¹ø° ÀÎÀÚ¿Í °°´Ù.
3. ÀÚ¹Ù½ºÅ©¸³Æ® ¸®½º³Ê ´Þ±â
¾Æ·¡¿Í °°ÀÌ WebViewÀÇ setWebChromeClient¸¦ ÀÌ¿ëÇÑ´Ù.
À§ ¿¹Á¦´Â JavascriptÀÇ alert¸Þ¼Òµå ¹ß»ý½Ã À̺¥Æ®ÀÌ´Ù.
webView.setWebChromeClient(new WebChromeClient() {
@Override
public boolean onJsAlert(final WebView view,
final String url, final String message,
JsResult result) {
Log.d(TAG, "onJsAlert(" + view + ", " + url + ", "
+ message + ", " + result + ")");
Toast.makeText(LocalBrowser.this, message, 3000).show();
result.confirm();
return true; // I handled it
}
});
|
|
̵̧ : 305 |
̵̧
¸ñ·Ï
|
|