有没有办法在Android应用程序中嵌入浏览器?

5
我正在处理一个需要处理请求(html/javascript)以及其他许多事情的项目。我在Windows中使用了Chromiumembedded。现在我需要类似于这样的东西用于Android。
我搜索了一些关于Android编程的资料,花费了一些时间在Phonegap上。据我所知它打开了一个webview,并有一些针对某些设备功能(如相机)的javascript API。因此,Phonegap并不能帮助我。
我想知道是否有任何方法可以嵌入Chrome或任何其他可以嵌入到Android应用程序中的浏览器?

2
嵌入WebView有什么问题吗? - assylias
Webview是答案。它具有巨大的能力。你应该尝试一下。 - VendettaDroid
据我所知,chromiumembedded是一种使您的桌面应用程序具备浏览器功能的能力,因此开发人员不必为该应用程序开发自己的浏览器。Android中的WebView相当于PC上的chromiumembedded。 - Zyoo
一个很棒的WebView存在不支持queryString的问题。例如:webView.loadUrl("file:///android_asset/foo.html?a=1");会报错。但使用phonegap可以解决这个问题。 - Ata Iravani
1
摆脱查询参数。找到另一种将数据传递到应用程序的方法,例如通过addJavaScriptInterface()注入对象,Web页面使用该对象从中提取数据。 - CommonsWare
3个回答

6

Android有一个WebView组件,它基本上是一个浏览器。您可以将其放置在应用程序中的任何位置,并启用默认情况下禁用的JavaScript。支持HTML 5。我在生产中使用它并全力推荐。

不幸的是,3.x版本存在一个不支持字符串查询的错误,可能存在于某些页面的URL中。在该错误的网站上,此问题显示为已关闭和已修复。我们对此毫不知情,因为我们在所有地方都使用4.1.0。该bug在该版本中已经得到了修复。对于早期版本,一些解决方法可在这里找到。


请阅读上面的评论。 - Ata Iravani
所以 WebView 无法帮助我。我必须使用查询字符串。 - Ata Iravani
1
请说明您仅支持4.1及更高版本。根据您的目标受众,这可能是一个问题或不是问题。 - Audrius Meškauskas

0

使用android.webkit.WebView

设置视图,例如:

WebView mywebview = (WebView) findViewById(R.id.webview);

加载应用程序的URL:

mywebview.loadUrl("http://www.example.com");

或者

mywebview.loadUrl("file:///android_asset/html_no_copy/test.html");

要在您的应用程序中启用JavaScript,请设置:

WebSettings webSettings = mywebview.getSettings();
webSettings.setBuiltInZoomControls(true);
webSettings.setJavaScriptEnabled(true);

请尝试阅读文档:http://developer.android.com/reference/android/webkit/WebView.html


我认为应该阅读上面的评论。 - Ata Iravani

0
尝试使用android.webkit.WebView,它相当于iOS的UIWebView

感谢您参与, 请阅读上面的评论。 - Ata Iravani

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接