【问题标题】:Are there any ways to embed a browser in Android app?有没有办法在 Android 应用程序中嵌入浏览器?
【发布时间】:2013-01-10 05:11:12
【问题描述】:

我正在处理一个需要管理请求(html/javascript)和更多其他事情的项目。我在 Windows 上使用了 Chromiumembedded。现在我需要为 android 提供类似的东西。

我搜索了有关 android 编程的信息,并在 Phonegap 上花了一些时间。据我所知,它会打开一个 webview 并为一些设备功能(如相机)提供一些 javascript API。所以Phonegap不会帮助我。

我想知道是否有任何方法可以嵌入 Chrome 或任何其他可以嵌入到 Android 应用程序中的浏览器?

【问题讨论】:

  • 嵌入 WebView 有什么问题?
  • Webview 就是答案。它拥有巨大的能力。你应该尝试一下。
  • 据我了解,chromiumembedded 是一种让您的桌面应用程序拥有浏览器的功能,因此开发人员不会在该应用程序中开发自己的浏览器。 Android 中的 WebView 相当于 PC 中的 chromiumembedded。
  • 一个很棒的湖是WebView不支持queryString。例如:webView.loadUrl("file:///android_asset/foo.html?a=1"); 显示错误。但是使用 phonegap 解决了这个问题。
  • 去掉查询参数。找到另一种将数据传递到应用程序的方法,例如通过addJavaScriptInterface() 注入一个对象,网页使用该对象从中提取数据。

标签: android cordova browser chromium-embedded


【解决方案1】:

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

不幸的是,3.x 版本有一个bug not supporting string query,它可能出现在某些页面的 URL 中。在错误网站中,此问题显示为已关闭并已修复。我什至没有意识到这一点,因为我们对所有东西都使用 4.1.0。该版本已经修复了该错误。对于早期版本,可以使用一些解决方法here

【讨论】:

  • 所以 webview 帮不了我。我必须使用 queryString。
  • 说你只支持4.1以后的版本。根据您的目标受众,可能有问题,也可能没有问题。
【解决方案2】:

使用 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

【讨论】:

【解决方案3】:

试试android.webkit.WebView,它相当于iOS的UIWebView

【讨论】:

猜你喜欢
  • 2021-10-04
  • 2021-11-08
  • 2012-12-18
  • 2011-07-04
  • 2012-02-07
  • 1970-01-01
相关资源
最近更新 更多