처음 loadUrl메서드를 사용한 후
shouldOverrideUrlLoading 매서드의 url로 리다이렉트 주소를 받습니다.
그 후, 디코딩 한 후, 그 url로 웹뷰를 다시한번 띄우고 싶습니다.
그런데 shouldOverrideUrlLoading안에서 loadUrl 메서드를 다시 사용하니 아무반응이 없습니다.
어떻게해야할까요
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_webview);
init();
}
private void init() {
int productId = bible_list.get(Bible_CurrentBibleInfo.cur).id;
String userId = DB_Send_AppInfoRequest.getUserId();
Log.d("메시지", "이제품의 아이디: " + productId + " 유저 아이디 : " + userId);
String url =
"블라블라블라~~?pid="+productId+"&id="+userId;
Log.i("URL", "Opening URL :" + url);
webView = (WebView) findViewById(R.id.webview);
webView.getSettings().setJavaScriptEnabled(true);
webView.loadUrl(url);
webView.setWebViewClient(new WebViewClient(){
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if (!secondOpen) {
// URL 스트링 중, http부터 & 전까지 자른다음에 디코딩 해야함.
// 뽑아야 할 곳 첫번째 index, 마지막 index를 구함.
int startIndex = url.indexOf("http%");
int lastIndex = url.indexOf("&");
//새로운 url로 변신
String newUrl = url.substring(startIndex, lastIndex);
try {
String str = URLDecoder.decode(newUrl, "UTF-8");
webView.getSettings().setJavaScriptEnabled(true);
webView.loadUrl(str);
secondOpen = true;
} catch (Exception e) {
}}
return true;
}
});
}