5

有没有办法隐藏或禁用地址栏中的 URL 字段?在我的情况下,该设备是作为信息亭浏览器运行的平板电脑,因此只允许使用一个 URL。

我通过将 ChildBrowser.java 中的代码更改为

private void navigate(String url) {
    InputMethodManager imm = (InputMethodManager)this.ctx.getSystemService(Context.INPUT_METHOD_SERVICE);
    imm.hideSoftInputFromWindow(edittext.getWindowToken(), 0);
    if (!url.startsWith("http")) {
        this.webview.loadUrl("http://" + url);
    }
    this.webview.loadUrl("http://www.my-only-allowed-site.example.org");
    this.webview.requestFocus();
}

这很好用,但不是很好。您仍然可以看到网址。我想要任何可能的解决方案:
1)完全隐藏 URL 字段
2)单击 URL 字段时隐藏软键盘
3)将 URL 字体颜色设置为黑色

任何想法?
提前致谢

4

2 回答 2

4

如果您修改了插件的源代码,您可以通过修改插件的源代码来隐藏 url 字段和关闭按钮,只需注释掉以下行:

toolbar.addView(back);       //shows the back button
toolbar.addView(forward);    //shows the forward button
//toolbar.addView(edittext); //shows the URL - comment this line out to hide the URL
toolbar.addView(close);      //shows the close button

编辑:哎呀,我刚刚从您的评论中看到您以同样的方式解决了这个问题!

于 2012-01-17T01:48:01.730 回答
0

我对Phonegap一无所知,但我假设您使用的是标准Android WebView

如果您看到 URL 栏,则通常意味着正在调用默认系统浏览器来处理页面的加载。为了防止这种设置WebViewClient如下...

this.webview.setWebViewClient(new WebViewClient() {
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        return false;
    }
});

shouldOverrideUrlLoading(...)方法由宿主应用程序调用,以查看它是否应该通过使用活动管理器来覆盖加载以找到合适的应用程序(通常是股票浏览器应用程序)。返回false意味着WebView实例想要处理它自己的 URL 加载,而您根本看不到 URL 栏。

编辑:如果修复它但也丢失了导航按钮,那么我建议您维护自己的历史记录集合并提供自己的后退/前进/退出按钮。

于 2012-01-03T01:24:13.663 回答