(Android) WebView blank ó¸® |
|
|
 |
8³â Àü |
´ÙÀ½°ú °°ÀÌ <A HREF="newwindow.html" TARGET="_blank"> űװ¡ Á¸ÀçÇÒ ¶§
À¥ºä¿¡¼ ¿ÜºÎºê¶ó¿ìÁ®·Î ÇØ´ç ÆäÀÌÁö¸¦ º¸¿©ÁÖ°í ½ÍÀº °æ¿ì°¡ ÀÖ´Ù.
_blank ÀÇ Àǹ̴ ±âÁ¸ âÀº ³ªµÐ »óÅ¿¡¼ »õ·Î¿î ºê¶ó¿ìÀú âÀ» ¶ç¿ï ¶§ ¾²ÀÔ´Ï´Ù.
±×·¯³ª shouldOverrideUrlLoading()À» »ç¿ëÇϱâ À§ÇØ mWebView.setWebViewClient(new WebViewClient()); À» »ç¿ëÇÒ °æ¿ì ÀÚµ¿À¸·Î ¿ÜºÎºê¶ó¿ìÀú·Î ³»¿ëÀ» º¸¿©ÁÖÁö ¾Ê´Â´Ù.
ÀÌ °æ¿ì¿¡´Â ´ÙÀ½°ú °°ÀÌ Ã³¸®ÇÏ¸é µÈ´Ù.
WebSettings ws = mWebView.getSettings();
ws.setSupportMultipleWindows(true);
mWebView.setWebViewClient(new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
// .... ³»¿ë ó¸®....
return super.shouldOverrideUrlLoading(view, url);
}
});
mWebView.setWebChromeClient(new WebChromeClient() {
@Override
public boolean onCreateWindow(WebView view, boolean dialog, boolean userGesture, Message resultMsg) {
Logger.d(TAG, "onCreateWindow ");
WebView newWebView = new WebView(getContext());
WebView.WebViewTransport transport = (WebView.WebViewTransport)resultMsg.obj;
transport.setWebView(newWebView);
resultMsg.sendToTarget();
return true;
}
});
¿ì¼± »õâÀ» ¶ç¿ì±â À§Çؼ´Â mWebView.getSettings().setSupportMultipleWindows(true)·Î ¼³Á¤ÇØ ÁÖ¾î¾ß ÇÑ´Ù.
±×¸®°í ³ª¼ »õâÀ¸·Î ¶ç¿ö¾ßÇÏ´Â °æ¿ì°¡ ¹ß»ýÇϸé onCreateWindow()·Î À̺¥Æ®°¡ Àü´ÞµÇ´Â´ë
À̶§ »õ·Î¿î WebView¸¦ ¸¸µé¾î¼ °Å±â¼ ó¸®Çϵµ·Ï ÇÏ°í 󸮰¡ ³¡³ª¸é
»õ·Î ¸¸µé¾îÁø WebView´Â ÂüÁ¶°ü°è°¡ ²÷¾îÁ®¼ ÀÚµ¿À¸·Î ¸Þ¸ð¸®¿¡¼ »ç¶óÁö°Ô²û ¸¸µç °ÍÀÌ´Ù.
|
|
̵̧ : 367 |
̵̧
¸ñ·Ï
|
|