Я включил веб-приложение в веб-представление Android, и на веб-странице есть ссылка, которая открывает какой-то другой сайт, при нажатии на ссылку он отлично работает при первом нажатии, однако при повторном нажатии веб-сайтне найден,
код:
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if (url.contains("some site ")) {
Intent i = new
Intent(Intent.ACTION_VIEW, Uri.parse(url));
startActivity(i);
return true;
} else {
view.loadUrl(url);
return false;
}
}
@ THelper и @mikegr, спасибо за ответ,
На самом деле в моем случае у меня естьмодальная панель (JSF) в моем веб-приложении, содержащая несколько кнопок, при нажатии на кнопку я открываю другой сайт с помощью метода javascript window.open (), который прекрасно работает в настольном браузере, однако, когда я оборачиваю это веб-приложение в веб-обозрение Androidвсе работает нормально, за исключением того, что когда я впервые нажимаю эту кнопку, я могу открыть другой сайт с помощью внешнего браузера, однако при втором щелчке веб-просмотр пытается открыть этот другой сайт в веб-обзоре вместо внешнего браузера, и я получаю веб-сайт не найденсо всем URL другого сайта, это происходит, даже когда я выхожу иДжин снова, поскольку запущенное приложение все еще работает.
также в моем случае после того, как какое-то время приложение простаивает, я получаю черный экран.
Я перебрал сеть и обнаружил проблему с аналогами, но этотоже не помогло, вот ссылка:
http://groups.google.com/group/android-for-beginners/browse_thread/thread/42431dd1ca4a9d98
обработка ссылок в веб-просмотре ,
любая помощь и идеи будуточень полезно для меня, это занимает слишком много времени для меня,
, так как я пытаюсь отобразить свое веб-приложение в веб-представлении, у меня есть только одно действие, которое содержит код, подобный этому
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (savedInstanceState != null) {
// so that when launcher is clicked while the application is
// running , the application doesn't start from the begnining
} else {
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.main);
// Show the ProgressDialog on this thread
this.progressDialog = ProgressDialog.show(this, "Pleas Wait..", "Loading", true);
browser = (WebView) findViewById(R.id.webview);
browser.getSettings().setJavaScriptEnabled(true);
browser.setWebViewClient(new WebViewClient() {
public void onPageFinished(WebView view, String url) {
Log.i(TAG, "Finished loading URL: " +url);
if (progressDialog.isShowing()) {
progressDialog .dismiss();
}
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if (url.contains("some site")) {
Intent i = new
Intent(Intent.ACTION_VIEW, Uri.parse(url));
startActivity(i);
return true;
} else {
view.loadUrl(url);
return true;
}
}
});
browser.loadUrl("mysite");
}
}