Webview加载远程URL

时间:2013-06-11 17:03:15

标签: android ios webview

首先,免责声明:我对iphone,android或任何移动开发都是全新的。另一方面,我长期以来一直在开发网站(php,javascript)。

我有一个适合移动设备并且效果很好的网站。但是,有一些我需要的功能,如防止屏幕变暗(我的网站设计为使用了几个小时没有用户交互,同时永久可见或例如能够发送通知(有声等),以吸引用户注意))。

这让我想到了一个webview。从我所看到的,它是关于创建一个本机应用程序,它只是一个webview(浏览器没有工具栏),并使用HTML和JavaScript操作。它将使用一些本机函数来执行一些本机操作(例如我想要的那些)。

我已经四处搜索,但我没有对此做出具体回应:我可以告诉网页视图,永久加载来自远程网站的内容吗?我的意思是,我的网站是基于PHP(zend),有许多jquery内容操作。我可以告诉他像LOAD htp://www.mysyite.com这样的东西让他做其他一切吗?绝对没有本地内容适用,一切都是遥远的。 webview只是网站的“界面”。

另外一个问题是:我可以使用jquery吗? ajax打电话?地理位置?我的意思是,在浏览器中我可以,我只是想知道我是否可以在webview中。

我已经读过,phonegap会这样做。但大多数时候,当我采取关于手机屏幕和关于webview的一般情况时,我会读到人们谈论本地加载页面并不是永久性的。

最后,是的,我将来会构建一个本机应用程序。但是现在,我根本没有时间同时学习android,ios和blackberry。非常感谢您的回复。

1 个答案:

答案 0 :(得分:1)

仅适用于Android:

Can i tell him something like LOAD htp://www.mysyite.com and let him do everything else from it ? absolutely no local content applies, everything is remote. The webview would just be an "interface" to the website.

是的,当然可以。假设你在一个活动中有一个webview(这很容易),你可以加载这样的网页:

WebView myWebView = .... // get a reference from XML or if you just created get its ref
myWebView.loadURL("http://www.mysite.com");

我会从this API Guide文章开始。另外,taken from WebView JavaDoc

WebView有几个自定义点,您可以在其中添加自己的行为。这些是:

  1. 创建和设置WebChromeClient子类。当可能影响浏览器UI的事件发生时调用此类,例如,在此处发送进度更新和JavaScript警报(请参阅调试任务)
  2. 创建和设置WebViewClient子类。当事件发生影响内容的呈现时,例如,错误或表单提交,将调用它。您也可以在此拦截网址加载(通过shouldOverrideUrlLoading())。
  3. 修改WebSettings,例如使用setJavaScriptEnabled()启用JavaScript。 使用addJavascriptInterface(Object,String)方法将Java对象注入WebView。此方法允许您将Java对象注入页面的JavaScript上下文中,以便可以通过页面中的JavaScript访问它们。
  4. 请注意,webview并不像手机的浏览器那么强大。这是一个SO thread,朋友发布了一个有趣的问题。你可能会发现他得到的答案很有用。