2012-04-04 2 views
0

webview에서 Google 캘린더 공개 캘린더의 URL을로드하려고합니다. 처음에는 문제없이 작동했습니다. somepoint에서 얻을 수있는 것은 모두 "null"이라는 텍스트입니다. 나는 동일한 결과를 가진 다만 기본적인 웹 페이지에 URL를 또한 바꾸는 시도했다. 또한 wbv.loadurl 행을 주석 처리하고 동일한 결과를 얻으려고했습니다. 나는 코드를 단계별로 시도해 봤고 주석 처리되지 않은 줄은 호출된다. 어떤 도움을 주시면 감사하겠습니다. 아래는 웹보기를 채울 수있는 코드는 다음과 같습니다내용으로 "null"을 표시하는 웹보기

wbv = (WebView) findViewById(R.id.audioPlayer_showSchedule); 
WebSettings settings = wbv.getSettings(); 
wbv.setWebViewClient(new TwitWebViewClient()); 
settings.setDomStorageEnabled(true); 
settings.setDatabaseEnabled(true); 
settings.setJavaScriptEnabled(true); 
settings.setDefaultTextEncodingName("utf-8"); 
wbv.loadUrl("http://www.google.com/calendar/[email protected]&ctz=America/Los_Angeles&program&mode=Week&gsessionid=vzeVWSq2Wdk3eVmGOUp1bQ"); 

답변

1

당신이 아이디 웹보기와 웹보기가 있어야 작동 코드 :: 당신의 main.xml에 레이아웃도

public class Android_Activity extends Activity { 
private Android_Activity _activity; 
    @Override 
     public void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState);  
      getWindow().requestFeature(Window.FEATURE_PROGRESS); 
      _activity = this; 
      setContentView(R.layout.main); 

      mwebview=(WebView)view.findViewById(R.id.webview); 
      mwebview.getSettings().setJavaScriptEnabled(true); 
      mwebview.getSettings().setJavaScriptCanOpenWindowsAutomatically(true); 

      if(checkInternetConnection(_activity)==true){ 
       if(savedInstanceState==null) 
        mwebview.loadUrl("http://abc.com"); 
       else 
        mwebview.restoreState(savedInstanceState); 
      } 
      else{ 
       AlertDialog.Builder builder = new AlertDialog.Builder(_activity); 
       builder.setMessage("Please check your network connection.") 
         .setCancelable(false) 
         .setPositiveButton("OK", new DialogInterface.OnClickListener() { 
          public void onClick(DialogInterface dialog, int id) { 

          } 
         }); 

       AlertDialog alert = builder.create();  
       alert.show(); 
      } 
      mwebview.setWebChromeClient(new WebChromeClient() { 

       @Override 
       public void onProgressChanged(WebView view, int progress) { 
        if(mwebview.getVisibility()==View.VISIBLE) 
        { 
         _activity.setProgress(progress * 100); 
        } 
       } 
      }); 
      mwebview.setWebViewClient(new HelloWebViewClient()); 
     } 


     //HelloWebViewClient class for webview 
     private class HelloWebViewClient extends WebViewClient { 

      @Override 
      public void onPageStarted(WebView view, String url, Bitmap favicon) { 
       // TODO Auto-generated method stub 
       super.onPageStarted(view, url, favicon); 
      } 
      @Override 
      public void onReceivedError(WebView view, int errorCode, 
        String description, String failingUrl) { 
       // TODO Auto-generated method stub 
       super.onReceivedError(view, errorCode, description, failingUrl); 

      } 
      @Override 
      public void onPageFinished(WebView view, String url) { 
       // TODO Auto-generated method stub 
       super.onPageFinished(view, url); 
      } 
      @Override 
      public boolean shouldOverrideUrlLoading(WebView view, String url) { 
       // Otherwise, the link is not for a page on my site, so launch another Activity that handles URLs 
       view.loadUrl(url); 
       return true; 
      } 

     } //HelloWebViewClient-class 
     @Override 
     public boolean onKeyDown(int keyCode, KeyEvent event) { 
      // Check if the key event was the Back button and if there's history 
      if ((keyCode == KeyEvent.KEYCODE_BACK) && mwebview.canGoBack()){ 
       mwebview.goBack(); 
       return true; 
      } 
      // If it wasn't the Back key or there's no web page history, bubble up to the default 
      // system behavior (probably exit the activity) 
      return super.onKeyDown(keyCode, event); 
     } 
     //To check whether network connection is available on device or not 
      public static boolean checkInternetConnection(Activity _activity) { 
       ConnectivityManager conMgr = (ConnectivityManager) _activity.getSystemService(Context.CONNECTIVITY_SERVICE); 
       if (conMgr.getActiveNetworkInfo() != null 
         && conMgr.getActiveNetworkInfo().isAvailable() 
         && conMgr.getActiveNetworkInfo().isConnected()) 
        return true; 
       else 
        return false; 
      }//checkInternetConnection() 
} 

그리고 아래 사용

+0

감사합니다. – Jason

0

그것을 모두 나에게 좋아 보인다. TwitWebViewClient이 (가) 예상 한대로 작동하고 있습니까?

또한로드하려는 URL이 맞습니까? 나는 도울 수 없지만 그것의 끝에 "gsessionid=vzeVWSq2Wdk3eVmGOUp1bQ"를 알아 차린다. 세션이 만료 되 자마자 작동하지 않을 것입니다.