首先,免责声明:我对iphone,android或任何移动开发都是全新的 . 另一方面,我一直在开发网站(php,javascript)很长一段时间 .
我有一个适合移动的网站,效果很好 . 但是,有一些我需要的功能,如防止屏幕变暗(我的网站设计为使用了几个小时没有用户交互,同时永久可见或例如能够发送通知(有声等),以吸引用户注意)) .
这让我想到了一个webview . 从我所看到的,它是关于创建一个本机应用程序,它只是一个webview(浏览器没有工具栏),并使用HTML和JavaScript操作 . 它将使用一些本机函数来执行一些本机操作(例如我想要的) .
我一直在搜索,我没有对此做出具体回应:我可以告诉webview,从远程站点永久加载内容吗?我的意思是,我的网站是基于PHP(zend),有许多jquery内容操作 . 我可以告诉他像LOAD htp://www.mysyite.com这样的东西让他做其他一切吗?绝对没有本地内容适用,一切都是遥远的 . webview只是网站的“界面” .
另外一个问题是:我可以使用jquery吗? ajax打电话?地理位置?我的意思是,在浏览器中我可以,我只是想知道我是否可以在webview中 .
我已经读过,phonegap会这样做 . 但大部分时间,当我采取关于手机屏幕和关于webview的一般情况时,我会读到人们谈论本地加载页面而不是永久性地远程加载 .
最后,是的,我将来会构建一个本机应用程序 . 但是现在,我根本没有时间同时学习android,ios和blackberry . 非常感谢您的回复 .
1 回答
仅适用于Android:
是的,当然可以 . 假设您在活动中有一个webview(这很容易),您可以加载网页,例如:
我会从this API Guide文章开始 . 另外,taken from WebView JavaDoc:
WebView有几个自定义点,您可以在其中添加自己的行为 . 这些是:
创建和设置WebChromeClient子类 . 当可能影响浏览器UI的事件发生时调用此类,例如,在此处发送进度更新和JavaScript警报(请参阅调试任务)
创建和设置WebViewClient子类 . 当事情发生影响内容的呈现时,例如,错误或表单提交,将调用它 . 您也可以在此拦截URL加载(通过shouldOverrideUrlLoading()) .
修改WebSettings,例如使用setJavaScriptEnabled()启用JavaScript . 使用addJavascriptInterface(Object,String)方法将Java对象注入WebView . 此方法允许您将Java对象注入页面的JavaScript上下文,以便可以通过页面中的JavaScript访问它们 .
请注意,webview并不像手机的浏览器那么强大 . 这是SO thread,朋友发布了一个有趣的问题 . 你可能会发现他得到的答案很有帮助 .