如何在我的 phonegap 应用程序中从网页导航到本地页面?
Posted
技术标签:
【中文标题】如何在我的 phonegap 应用程序中从网页导航到本地页面?【英文标题】:How to navigate from a webpage to local page in my phonegap app? 【发布时间】:2012-03-16 16:48:22 【问题描述】:我的手机上运行了一个 phonegap 应用程序。我有一个链接可以将我带到一个网页以检查一些信息并显示一些数据......然后我希望能够有一个后退按钮,以便用户导航回本地应用程序。安卓和ios都可以吗?
【问题讨论】:
是应用商店还是网页? 相关但不相同的问题:***.com/questions/8137909/…(该问题是 JQM 特定的) @user969275 你找到合适的解决方案了吗 【参考方案1】:我认为您应该使用 phonegap 的 childbrowser 插件,因为在这种情况下,考虑到 iOS 没有 backbutton
返回应用程序,您将在 android 和 iOS 中具有一致的行为。
Childbrowser for Android Childbrowser for iOS
【讨论】:
+1 在子浏览器上。 UI 方面,它将在 ios 应用程序的顶部添加一个工具栏,为用户提供一个返回按钮以返回您的应用程序。在具有硬件约定(即后退按钮)的其他平台上,不会显示任何工具栏。此外,childbrowser 计划在 2.0 之后成为 cordova/phonegap “核心”功能的一部分。 一个看起来像浏览器的工具栏正是我试图通过使用 Phonegap 来避免的。 工具栏是支持ui的,因为在iOS中你没有任何其他方式可以切换或返回。您仍然可以在复制与项目相关的源代码时自定义 childbrowser 的 ui - groups.google.com/forum/?fromgroups#!topic/phonegap/jbXi-K7BBno 请检查这个来源,我在插件中添加了一个选项来根据需要隐藏/显示地址栏。 github.com/dhavaln/cordova-examples/tree/master/… 感谢您的回答。我通过使用 childbrowser 插件开始工作。【参考方案2】:这适用于 Android 和 iOS:
window.history.go( -( history.length - 1 ) );
但是,正如其他人所提到的,我发现尝试离开UIWebView
是不值得的。返回您的应用页面后,有时事情不会按预期工作。我注意到 PhoneGap 已卸载,似乎无法重新加载。
【讨论】:
【参考方案3】:答案是“NO WAY BACK”。 您可以在本地应用程序中导航(上课任意次数) 一旦您将流发送到
super.loadUrl("file:///android_asset/www/index.html");
您无法导航回任何本地课程。
【讨论】:
【参考方案4】:我破解了一个自定义版本的 ChildBrowser,以删除所有工具栏元素,并在子页面和父应用程序之间传递消息。这个 hack,SlaveBrowser,最初是为 Android 上的 oAuth2 设计的。父应用知道何时关闭外部页面,因此不需要丑陋的工具栏:-)。具有 Obj-C 技能的人可以将其移植到 iOS
【讨论】:
【参考方案5】:如果您的网页存储在您的项目中的 /assets/ 下,您可以使用 file:///android_asset/index.html。
当然,这是 Android 特有的。
【讨论】:
【参考方案6】:如何在 iframe 中显示外部页面。这样,您仍然可以在本地 phonegap 应用中显示后退按钮。
【讨论】:
这是解决方案的开始。那么 iframe 中的页面如何向父框架发送消息告诉它导航呢? 嗯。我最初的想法是在页面顶部显示一个小导航栏,在其下方显示一个带有外部页面的 iFrame。这样您就可以在导航栏上显示后退按钮。同理,谷歌在图片搜索结果中显示一些信息google.de/…【参考方案7】:如果你可以完全控制外部页面的内容,你可以在 iOS 中实现一个 URL 方案:http://remysharp.com/2010/09/01/custom-url-schemes-in-phonegap/
...在 Android 中获得它的这个技巧:http://remysharp.com/2010/09/01/custom-url-schemes-in-phonegap/
然后您的外部页面可以通过 myappname://some/parameters URL 链接回应用程序
以上两篇文章都来自 2010 年,这对于 Android 来说并不是一个好兆头(软件在不断发展)......但如果这不起作用,我敢打赌,某处有一篇更新的文章有一种方法肯定有效。我知道 iOS 的工作原理与我现在在我的应用中使用的一样。
【讨论】:
【参考方案8】:我使用了 childbrowser 并修改了 xCode 中的 UI,因此我没有地址栏和一个独特的小“返回应用程序”按钮。我不需要触摸 obj-c 只需在 UI 编辑器中选择你不想要的并删除它。
【讨论】:
以上是关于如何在我的 phonegap 应用程序中从网页导航到本地页面?的主要内容,如果未能解决你的问题,请参考以下文章
如何从我的 phonegap 应用程序打开 TomTom 导航应用程序?