레이블이 webview인 게시물을 표시합니다. 모든 게시물 표시
레이블이 webview인 게시물을 표시합니다. 모든 게시물 표시

2014년 7월 22일 화요일

Web view 에서 쿠키가 안 먹힐 때

안드로이드 웹뷰에서 쿠키가 안 먹힐 때

메인 액티비티에서 쿠키에 대해 싱크도 해주고 만들어주고... 암튼 만들어줘야 한다.

위치 : MainActivity.java
Source:

import android.webkit.CookieSyncManager;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
       
        setLayout();
       
        CookieSyncManager.createInstance(this);
       
        // set web view client
        mWebview.setWebViewClient(new WebClient());
       
       
        WebSettings set = mWebview.getSettings();
        // set java script enable.
        set.setJavaScriptEnabled(true);
        set.setBuiltInZoomControls(true);
       
        mWebview.loadUrl("http://???????????");
         
    }

   class WebClient extends WebViewClient {
    @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            view.loadUrl(url);
            return true;
        }
   
    public void onPageFinished(WebView view, String url){
    CookieSyncManager.getInstance().sync();
    }
    }

    @Override
    protected void onResume(){
    super.onResume();
    CookieSyncManager.getInstance().startSync();
    }
    
    @Override
    protected void onPause(){
    super.onPause();
    CookieSyncManager.getInstance().stopSync();
    }

Web view 에서 전화 걸기 안될 때

안드로이드 웹뷰에서 전화 걸기가 안 될때 !!
1. 웹에서 태그를 제대로 썼나 확인
<a href="tel: 02-0000-0000">전화걸기</a>

2. 앱에서 권한 줬나 확인 ( AndroidManifest.xml)
<uses-permission android:name="android.permission.CALL_PHONE"/>

3. 앱에서 activity 호출 했나 확인(MainActivity.java)

public boolean shouldOverrideUrlLoading(WebView view, String url) {
    if(url.startsWith("tel:")){
    Intent dial = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
    //현재의 activity 에 대하여 startActivity 호출
    startActivity(dial);
    return true;
    }
            view.loadUrl(url);
            return true;
        }