0
내 앱 내부 웹보기에서로드 할 때 특정 사이트에 문제가 있습니다.내부 WebView 문제의 Android로드 URL
LogCat에서 나는이 두 줄을 얻습니다 (태그는 "크롬"입니다).
[INFO:CONSOLE(25)] "Uncaught TypeError: Cannot call method 'getItem' of null", source: http://m.ynet.co.il/Default_Ynet.aspx?type=3&id=4519238 (25)
[INFO:CONSOLE(73)] "Uncaught TypeError: Cannot call method 'push' of undefined", source: http://m.ynet.co.il/Default_Ynet.aspx?type=3&id=4519238 (73)
외부 브라우저로 리디렉션하면 정상입니다. 또한 위 사이트에서만 발생합니다 (logcat 참조)
public class WebActivity extends Activity {
WebView wv;
final Activity activity = this;
@SuppressLint("SetJavaScriptEnabled")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.getWindow().requestFeature(Window.FEATURE_PROGRESS);
setProgressBarIndeterminateVisibility(true);
setContentView(R.layout.activity_web);
wv = (WebView)findViewById(R.id.webView1);
Intent intent = getIntent();
final String url = intent.getStringExtra("url");
Log.i("webView", url);
wv.getSettings().setJavaScriptEnabled(true);
wv.getSettings().setBuiltInZoomControls(true);
wv.getSettings().setLoadWithOverviewMode(true);
wv.getSettings().setUseWideViewPort(true);
wv.setWebChromeClient(new WebChromeClient() {
public void onProgressChanged(WebView view, int progress)
{
activity.setTitle("Loading...");
activity.setProgress(progress * 100);
if(progress == 100)
activity.setTitle(R.string.app_name);
}
});
wv.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url)
{
view.loadUrl(url);
return true;
}
});
wv.loadUrl(url);
}
아이디어가 있으십니까?
아마 무관하지만 shouldOverrideUrlLoading에서 loadUrl를 호출하지 않는 대신 false를 돌려줍니다. –
@ marcin.kosiba 학습 할 수있는 이유를 설명해주세요. – GuyZ
'shouldOverrideUrlLoading'은 https가 아닌 스키마가있는 서브 프레임에 대해 호출됩니다. http://jsbin.com/gupug/1/quiet와 같은 페이지로 이동하면 코드가 view.loadUrl ('tel : 1234') 호출을 끝내고 webview가 오류 페이지를 표시하게됩니다. tel : URL을로드하는 방법을 알지 못합니다. –