如何在phonegap子浏览器与主应用程序之间发送和接收数据

Posted

技术标签:

【中文标题】如何在phonegap子浏览器与主应用程序之间发送和接收数据【英文标题】:how to send and receive data between phonegap child browser to main application 【发布时间】:2012-11-08 04:46:51 【问题描述】:

我正在Phonegap 子浏览器中进行Facebook 登录身份验证。为此,我有一个页面可以启动身份验证过程并在身份验证后重定向回来(比如说 www.mysite.com/Facebook.html)。现在我有来自 Facebook 的真实用户,但我怎样才能将真实的用户数据从子浏览器获取到主应用程序并关闭子浏览器。出于安全原因,我设置了 "showLocationBar: false" ,所以没有关闭按钮。

所以,现在告诉我

如何将经过 Facebook 身份验证的用户数据(用户电子邮件和访问令牌以与 Facebook 进行进一步交易)获取到主应用程序并关闭子浏览器。 如何从子浏览器关闭子浏览器,因为我在子浏览器上没有关闭按钮。 有什么方法可以将 Facebook 中的数据保存到我的主应用程序中的 javascript 对象中

这是我第一个使用 Phonegap 的应用程序,但我对 Facebook 和 JavaScript 很有经验。所以,如果我在哪里错了,请告诉我。

提前致谢, 期待。

【问题讨论】:

【参考方案1】:

我还在使用 chilldbrowser 进行 Facebook 连接。以下是使用子浏览器连接 Facebook 的完整源代码链接:http://www.drewdahlman.com/meusLabs/?p=88。您可以使用以下代码使用 access_token 获取用户名:

 var params='access_token='+accessToken;
 $.get("https://graph.facebook.com/me",params, 
            function(response)
                fbUesrName=response.name;
                ,"json");  

您可以使用以下方法关闭子浏览器:

window.plugins.childBrowser.close();

【讨论】:

感谢您的回复。通过收听 onLoctionChange 事件,我已经完成了这个。但是,在我的情况下,window.plugins.childBrowser.close() 并没有关闭我的子浏览器。你知道我在这方面缺少什么吗?如果有任何区域,请让我知道从子浏览器本身自动关闭子浏览器的任何其他方式。 您使用的是哪个版本的phonegap。我正在使用科尔多瓦 2.0.0。它对我来说很好。甚至此链接中的源代码:drewdahlman.com/meusLabs/?p=88 也为我工作。是否会为给定的 URL 打开 Childbrowser?尝试使用像google.co.in 这样的简单网址一次。 @Aswini:我刚刚对我的问题进行了编辑。这里我的问题是如何从子浏览器本身而不是从父 PG 应用程序关闭子浏览器。关于您提供的链接,不鼓励使用外部插件,因为 phonegap 构建服务不支持它们,所以我不使用 fbconect 插件。所以,如果有的话,让我知道如何通过单击子浏览器上的按钮来关闭子浏览器。感谢您在这里发表评论。 @Venkat Krishna Prasad Chintama:对不起,我没听懂你说的。“如何从 childbrowser 本身关闭子浏览器”是什么意思?您只想关闭子浏览器对吗?当您关闭它时,您之前打开子浏览器的页面就会出现。【参考方案2】:

@Venkat:不确定您是否已经得到了从应用程序中关闭子浏览器的答案。这段代码对我有用。在您的网站上放置一个关闭按钮并将 URL 设置为“google.com”。您可以在 PG 应用程序中编写以下代码

       window.plugins.childBrowser.onLocationChange = function(locationLink)
    if (locationLink.indexOf('google.com') > 0) 
                window.plugins.childBrowser.close();
              
      

【讨论】:

以上是关于如何在phonegap子浏览器与主应用程序之间发送和接收数据的主要内容,如果未能解决你的问题,请参考以下文章

ios phonegap 子浏览器插件设置

用于单一注册的cordova、Phonegap 推送插件和c#?

在原生和 phonegap 之间挣扎,简单的应用需求

如何在后台为ios音频文件运行Phonegap应用程序

[转]QT子线程与主线程的信号槽通信-亲测可用!

GCM Phonegap,如何将消息发送到手机的核心通知