当我的服务器中只有一个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
文本。
当我按以下方式更改上述{{1}}代码时,问题就开始了:
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>';
。
答案 0 :(得分:0)
我成功地解决了我的问题。我只是实现了Web客户端并在loadUrl
之前设置它。
browser.setWebViewClient(new WebViewClient());