이 방법은 메서드를 사용하여 고정 입력 대신 문자열을 입력 할 수 있도록합니다. 메소드를 호출하는 데 3 줄만 있으면되므로 반복해서 사용하면 일부 코드 줄이 절약됩니다.
public Intent getWebIntent(String url) {
//Make sure it is a valid URL before parsing the URL.
if(!url.contains("http://") && !url.contains("https://")){
//If it isn't, just add the HTTP protocol at the start of the URL.
url = "http://" + url;
}
//create the intent
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url)/*And parse the valid URL. It doesn't need to be changed at this point, it we don't create an instance for it*/);
if (intent.resolveActivity(getPackageManager()) != null) {
//Make sure there is an app to handle this intent
return intent;
}
//If there is no app, return null.
return null;
}
이 방법을 사용하면 보편적으로 사용할 수 있습니다. 다음과 같이 사용할 수 있으므로 IT를 특정 활동에 배치 할 필요는 없습니다.
Intent i = getWebIntent("google.com");
if(i != null)
startActivity();
또는 액티비티 외부에서 시작하려면 액티비티 인스턴스에서 startActivity를 호출하면됩니다.
Intent i = getWebIntent("google.com");
if(i != null)
activityInstance.startActivity(i);
이 두 코드 블록에서 볼 수 있듯이 null 검사가 있습니다. 인 텐트를 처리 할 앱이없는 경우 null을 반환하기 때문입니다.
SSL 인증서가없는 웹 사이트 (HTTPS 연결에 필요한 것)가 있고 HTTPS를 사용하려고 시도하는 웹 사이트가 없기 때문에 프로토콜이 정의되어 있지 않으면이 방법의 기본값은 HTTP입니다. . 모든 웹 사이트는 여전히 HTTPS로 강제 전환 될 수 있으므로 이러한 측면은 HTTPS로 연결됩니다.
이 메소드는 외부 자원을 사용하여 페이지를 표시하므로 INternet 권한을 선언 할 필요가 없습니다. 웹 페이지를 표시하는 앱이이를 수행해야합니다.