2012-06-28 5 views
4

Android 기본 브라우저 인 에서 열면 응용 프로그램을 시작하는 HTML 파일이 있지만 WebView에서 열려고하면 해당 응용 프로그램을 시작할 수 없습니다 , "웹 페이지를 사용할 수 없음"이 표시됩니다. 내 WebView 응용 프로그램에 대해 정의 된 "my.special.scheme : //"구성표를 처리 할 수 ​​없다고 생각합니다.WebView에서 사용자 정의 Android 응용 프로그램 시작

나는 Launching an Android Application from the Browser을 읽었지만 WebView에서 앱을 실행하는 데 대한 정보는 다루지 않습니다.

답변

1

확실하지 않지만 WebView가 사용자 지정 URI 스키마를 처리하지 않는다고 생각합니다.

해결 방법은 WebViewClient.shouldOverrideUrlLoading()을 무시하고 URL에서 URI 스키마를 사용하는지 직접 테스트하고 앱을 실행 한 후 true (일치하는 경우)을 반환하고 그렇지 않으면 false을 반환하는 것입니다.

4

맞춤 URI 스키마가있는 링크가 WebView에서 앱을 자동으로 실행하지 않는다는 것은 사실입니다. 당신이해야 할 일은

은 당신의 웹보기에 사용자 정의 WebViewClient를 추가 할 수 있습니다 :

public boolean shouldOverrideUrlLoading(final WebView webView, final String url) { 

    if (url.startsWith("my.special.scheme://")) { 

     final Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); 

     // The following flags launch the app outside the current app 
     intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_SINGLE_TOP); 

     activity.startActivity(intent); 

     return true; 
    } 

    return false; 
} 
: 다음

webView.setWebViewClient(new CustomWebViewClient()); 

과를 shouldOverrideUrlLoading에서(), 다음 코드가

관련 문제