替换默认浏览器应用程序当我使用标题时,取而代之的是Android中的WebView(“Location:filename.php”)

时间:2015-08-24 06:42:35

标签: php android webview

当我的服务器中只有一个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>';

1 个答案:

答案 0 :(得分:0)

我成功地解决了我的问题。我只是实现了Web客户端并在loadUrl之前设置它。

  browser.setWebViewClient(new WebViewClient());