如何创建一个简单的Android浏览器?

发布于 2024-10-21 05:34:53 字数 836 浏览 4 评论 0原文

我只是想创建一个 apk,它将接受一个 url,然后打开一个窗口,然后像浏览器一样运行,

到目前为止我已经:

public class Browser extends Activity {

    WebView mWebView;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        mWebView = (WebView) findViewById(R.id.webview);
        mWebView.getSettings().setJavaScriptEnabled(true);
        mWebView.loadUrl("http://www.google.com");  
    } 
}

这工作正常,除了当我打开一个链接时,它会将我带到实际的浏览器,我'我无法在哪里放置此代码来覆盖在新浏览器中打开的链接:

private class HelloWebViewClient extends WebViewClient {
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        view.loadUrl(url);
        return true;
    }
}

I simply want to create an apk that will take a url, and open a window and simply run like a browser

so far I have:

public class Browser extends Activity {

    WebView mWebView;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        mWebView = (WebView) findViewById(R.id.webview);
        mWebView.getSettings().setJavaScriptEnabled(true);
        mWebView.loadUrl("http://www.google.com");  
    } 
}

This works fine, except when i open a link it'll take me to the actual browser, I'm having trouble where to place this code to override links opening in a new browser:

private class HelloWebViewClient extends WebViewClient {
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        view.loadUrl(url);
        return true;
    }
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

静若繁花 2024-10-28 05:34:53

WebView 有一个 setWebViewClient 方法。

所以你会做类似的事情

mWebView.setWebViewClient(new HelloWebViewClient());

WebView has a setWebViewClient method.

so you'd do something like

mWebView.setWebViewClient(new HelloWebViewClient());
淡紫姑娘! 2024-10-28 05:34:53

查看我的名为 FriarFramework 的项目,它是一个电子书应用程序发布商。

它基本上在本地获取 HTML 文件的集合并将它们打包到 WebView 中。

https://github.com/hanchang/Friar-Framework

Check out my project called FriarFramework, which is an ebook app publisher.

It basically takes a collection of HTML files locally and packages them up into a WebView.

https://github.com/hanchang/Friar-Framework

岁月苍老的讽刺 2024-10-28 05:34:53

试试这个

webView.setWebViewClient(new WebViewClient() {

        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            view.loadUrl(url);
            return true;
        }

        @Override
        public void onPageFinished(WebView view, String url) {
            progressBar.setVisibility(View.GONE);

        }
    });

Try this

webView.setWebViewClient(new WebViewClient() {

        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            view.loadUrl(url);
            return true;
        }

        @Override
        public void onPageFinished(WebView view, String url) {
            progressBar.setVisibility(View.GONE);

        }
    });
陌路终见情 2024-10-28 05:34:53
mWebView.setWebViewClient(new HelloWebViewClient());

这应该足够了。

有关更多信息,请参阅有关 在 WebView 中构建 Web 应用

mWebView.setWebViewClient(new HelloWebViewClient());

This should be enough.

for more see the official doc about Building web apps in WebView

℡Ms空城旧梦 2024-10-28 05:34:53

您必须实现 WebViewClient。

您可以在 shouldOverrideUrlLoading() 方法中检测 URL:

browser.setWebViewClient(new WebViewClient() {
@覆盖
公共布尔shouldOverrideUrlLoading(WebView视图,字符串url){
// 这里可以有 URL
}
});

You have to implement WebViewClient.

You can detect URL inside shouldOverrideUrlLoading() method:

browser.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
// You can have URL here
}
});

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文