안드로이드 웹뷰 새창 띄우기 어떻게 하나요?

안드로이드 웹뷰 새창 띄우기 어떻게 하나요?

QA

안드로이드 웹뷰 새창 띄우기 어떻게 하나요?

본문



package live.t;

import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.KeyEvent;
import android.webkit.ValueCallback;
import android.webkit.WebChromeClient;
import android.webkit.WebSettings.PluginState;
import android.webkit.WebView;
import android.webkit.WebViewClient;
public class Live extends Activity{
private WebView mWebView;

private ValueCallback<Uri> mUploadMessage;
private final static int FILECHOOSER_RESULTCODE = 1;
@Override
protected  void onActivityResult(int requestCode, int resultCode,
Intent intent) {
if (requestCode == FILECHOOSER_RESULTCODE) {
if (null == mUploadMessage)
return;
Uri result = intent == null || resultCode != RESULT_OK ? null
: intent.getData();
mUploadMessage.onReceiveValue(result);
mUploadMessage = null;
}
}

@SuppressLint("SetJavaScriptEnabled")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
setLayout();
// 웹뷰에서 자바스크립트실행가능
mWebView.getSettings().setJavaScriptEnabled(true);
// 플러그인
mWebView.getSettings().setPluginState(PluginState. ON);

mWebView.setWebChromeClient(new WebChromeClient()
{
       @SuppressWarnings("unused")
       public void openFileChooser(ValueCallback<Uri> uploadMsg, String acceptType, String capture) {
           mUploadMessage = uploadMsg;
           Intent i = new Intent(Intent.ACTION_GET_CONTENT);
           i.addCategory(Intent.CATEGORY_OPENABLE);
           i.setType("*/*");
           Live.this.startActivityForResult(
                   Intent.createChooser(i, "사진을 선택하세요"),
                   FILECHOOSER_RESULTCODE);
       }
 });

// 구글홈페이지 지정
mWebView.loadUrl("http://domain.com/m/wow.php");
// WebViewClient 지정
mWebView.setWebViewClient(new WebViewClientClass());
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if ((keyCode == KeyEvent.KEYCODE_BACK) && mWebView.canGoBack()) {
mWebView.goBack();
return true;
}
return super.onKeyDown(keyCode, event);
}
private class WebViewClientClass extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
}
/*
* Layout
*/
private void setLayout(){
mWebView = (WebView) findViewById(R.id.webview);
}
}

위에건 웹뷰 소스구요..


private class MyWebViewClient extends WebViewClient {    @Override    public boolean shouldOverrideUrlLoading(WebView view, String url) {        if (Uri.parse(url).getHost().equals("www.example.com")) {            // This is my web site, so do not override; let my WebView load the page            return false;        }        // Otherwise, the link is not for a page on my site, so launch another Activity that handles URLs        Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));        startActivity(intent);        return true;    }}
위에건 찾은 웹뷰 새창 띄우는건데요..

소스를 찾긴 했는데 아무리 해도 안되서요 ㅠㅠ 

안드로이드 웹뷰 안에다 iframe을 넣으려고 하는데 iframe이 들어간 페이지는 튕기더라구요..

그렇다면 링크를 걸어서 새창으로 크롬이라던가 기본 브라우저로 띄우고 싶은데 어떻게 하나요? 도움좀 부탁드립니다..

ㅠㅠㅠ

이 질문에 댓글 쓰기 :

답변 2

답변을 작성하시기 전에 로그인 해주세요.
전체 131
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT