Замена браузера по умолчанию вместо веб-приложения в Android, когда я использую заголовок (& quot; Location: filename.php & quot;)

Следующий код хорошо работает, когда у меня есть только один php файл на моем сервере. В результате, когда сервер отвечает на Android, WebView Виджет находится в устойчивом состоянии на экране. во-первых, посмотрите мой код, что он правильный:

public class MainActivity extends Activity {

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//WebView Object
WebView browser;
browser = (WebView) findViewById(R.id.webView);
//Enable Javascript
browser.getSettings().setJavaScriptEnabled(true);
//Inject WebAppInterface methods into Web page by having Interface name 'Android'
browser.addJavascriptInterface(new WebAppInterface(this), "Android");
//Load URL inside WebView
String s = "http://127.0.0.1:8080/apps/webview.php";
browser.loadUrl(s);
}
public class WebAppInterface {
Context mContext;

/** Instantiate the interface and set the context */
WebAppInterface(Context c) {
mContext = c;
}

/**
* Show Toast Message
* @param toast
*/
@JavascriptInterface
public void showToast(String toast) {
Toast.makeText(mContext, toast, Toast.LENGTH_SHORT).show();
}
}

}

Теперь, пожалуйста, смотрите следующее php код, что это правильно:

 <?php
echo "hello";
echo '<script> Android.showToast("Hello") </script>';
?>

Когда я запускаю приведенный выше код, WebView Виджет находится в устойчивом состоянии на экране, и я могу видеть Hello текст с использованием Toast на экране.

Проблема начинается, когда я изменяюсь выше php код следующим образом:

<?php
echo "hello";
header("Location:welcom.php");
?>

А потом я добавляю еще php код, который его зовут welcome и это так:

<?php

echo '<script> Android.showToast("Welcome") </script>';

?>

Теперь, когда я запускаю код на моем устройстве, сначала, когда он выполняет операции перенаправления на welcome.php файл, вдруг WebViewвиджет исчезает, и приложение браузера по умолчанию открывается на экране, в результате я не вижу echo '<script> Android.showToast("Welcome") </script>'; на экране моего устройства, а также на WebView виджет.

2

Решение

Мне удалось решить мою проблему. Я просто внедряю веб-клиент и устанавливаю его перед loadUrl,

  browser.setWebViewClient(new WebViewClient());
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]