내 응용 프로그램은 탐색 서랍을 사용하고 서랍에서 선택하면 내 주요 활동에서 조각을 바꿉니다. 나는 웹보기를 보여주는 두 조각을 가지고있다. 서랍을 열고 다른 항목을 선택하여 조각을 웹보기로 바꾸면 웹보기의 페이지가로드되기 전에 문제가 발생합니다. 이 경우 다음 오류가 발생합니다.WebView로드 전에 조각 교체시 응용 프로그램이 손상됨
12-02 08:07:48.605 11745-11745/kyfb.android.kyfb.com.kyfb A/chromium﹕ [FATAL:jni_android.cc(271)] Check failed: false.
12-02 08:07:48.605 11745-11745/kyfb.android.kyfb.com.kyfb A/libc﹕ Fatal signal 6 (SIGABRT), code -6 in tid 11745 (d.kyfb.com.kyfb)
여기에는 webview가있는 조각 중 하나가 있습니다.
public class AnnualMeetingFragment extends Fragment {
private WebView web;
private ProgressBar progressBar;
private String url;
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
super.onCreateView(inflater, container, savedInstanceState);
View rootView = inflater.inflate(R.layout.fragment_ag_facts, null);
url = "http://www.kyfbnewsroom.com/2013-kentucky-farm-bureau-annual-meeting-program/";
web = (WebView)rootView.findViewById(R.id.web);
progressBar = (ProgressBar)rootView.findViewById(R.id.prgPageLoading);
web.getSettings().setDomStorageEnabled(true);
web.getSettings().setJavaScriptEnabled(true);
web.getSettings().setSupportZoom(true);
web.getSettings().setBuiltInZoomControls(true);
web.getSettings().setRenderPriority(WebSettings.RenderPriority.HIGH);
web.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
web.getSettings().setDefaultZoom(WebSettings.ZoomDensity.FAR);
web.loadUrl(url);
web.setWebChromeClient(new WebChromeClient() {
public void onProgressChanged(WebView webView, int progress) {
getActivity().setProgress(progress * 100);
progressBar.setProgress(progress);
}
});
web.setWebViewClient(new WebViewClient() {
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
super.onPageStarted(web, url, favicon);
progressBar.setVisibility(View.VISIBLE);
}
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(web, url);
progressBar.setProgress(0);
progressBar.setVisibility(View.GONE);
}
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
Toast.makeText(getActivity(), description, Toast.LENGTH_SHORT).show();
}
public boolean shouldOverrideUrlLoading(WebView view, String url)
{
if(url.endsWith(".mp4") || url.endsWith(".3gp") || url.endsWith(".avi") || url.endsWith(".flv")){
Intent i = new Intent(Intent.ACTION_VIEW);
i.setData(Uri.parse(url));
startActivity(i); //warning no error handling will cause force close if no media player on phone.
return true;
}
view.loadUrl(url);
return true;
}
});
return rootView;
}
}
webview는 조각입니까? –
WebView에서 코드를 제공 할 수 있습니까? – Anatol
'super.onCreateView (...)'를 제거하면 어떻게됩니까? – Randy