この方法では、メソッドを使用して、固定入力の代わりに任意の文字列を入力できるようにします。メソッドを呼び出すために必要なのは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を返すためです。
プロトコルが定義されていない場合、このメソッドはデフォルトでHTTPになります。これは、SSL証明書(HTTPS接続に必要なもの)がないWebサイトがあり、HTTPSを使用しようとするとWebサイトが存在しないため、Webサイトが機能しなくなるためです。 。どのWebサイトでもHTTPSに強制的にアクセスできるため、どちらの方向でもHTTPSに到達します
このメソッドは外部リソースを使用してページを表示するため、インターネットのアクセス許可を宣言する必要はありません。ウェブページを表示するアプリはそれをしなければなりません