2011-08-25 5 views
8

ブラウザの現在のタブで開くリンクを使用して、サービスからブラウザウィンドウを開こうとしています。ブラウザが開かれ、フォアグラウンドでいた場合、私は複数のタブを避けるサービスからのAndroidオープンブラウザ

Intent intent = new Intent(Intent.ACTION_VIEW,Uri.parse("http://www.google.com")); 
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); 
context.startActivity(intent); 

を使用するときに、私のサービスは、意図を起動し、ブラウザが同じウィンドウ/タブでリンクを開く前に。ブラウザが最小化され、サービスがインテントを開始すると、ブラウザは新しいウィンドウ/タブでWebページを開きます。

ウェブビューを使用することはできません。ウェブビューはウェブブラウザにある必要があり、デフォルトのブラウザのみを扱うためです。私はOpen an url in android browser, avoid multiple tabsでスレッドをチェックアウトしましたが、答えがありませんでした。私もブラウザを強制的に閉じることを試みたが、それも動作しません。

ありがとうございました!あなたは...その意図を発射するあなたのアプリを使用したいので、パッケージ名から直接あなたのアプリを呼び出す 次のコードをチェックした場合

答えて

1

Intent in = getPackageManager().getLaunchIntentForPackage("com.package.myappweb"); 
in.putExtra("myURL","http://www.google.com"); 
in.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); 
startActivity(in); 

を、あなたは意図を通じてURLを渡し、自分の中でそれを得ることができますアプリ:

String url=getIntent().getStringExtra("myURL"); 
if(url!=null){ 
/// launch app and use one tab for showing the webpage 
}else{ 
//launch app normally. 
} 

リンクに対処するための任意のブラウザを拾うために使用するポップアップウィンドウが表示されます..thatウェブアプリとしてアプリを使用するために使用あなたが言及したコード...ではないことは、任意のアプリのためになりますリンクを開くには

幸運以下のように、複数のタブを避けるために

1

方法は次のとおりです。

Intent intent = new Intent(Intent.ACTION_VIEW); 
intent.setData(uri); 
intent.putExtra(Browser.EXTRA_APPLICATION_ID, getPackageName()); 
startActivity(intent); 

EXTRA_APPLICATION_IDアプリのIDが含まれていますし、ブラウザは、アプリケーションによって開かれたタブをリサイクルします新しいタブを開くのではなく、このようにして、アプリケーションで開かれたすべてのページは同じタブを共有し、ブラウザには「タブの膨張」はありません。

関連する問題