Phonegap / Cordova ChildBrowser不会运行Twitter网页意图(SSL?)

时间:2012-06-02 19:53:41

标签: android twitter cordova childbrowser

我试图将Twitter共享功能集成到我的Android PhoneGap应用程序中,而不是重新实现控件来缩短网址和跟踪推文长度,我想我会在{{{{{{{ {1}}

因此,我尝试在ChildBrowser窗口中启动https://twitter.com/intent/...之类的网址,以便我可以让Twitter的界面接管。用户可以使用他们的凭据登录,一旦他们登录,URL参数中的文本就会显示在推文框中。

它不会起作用。当我使用https://twitter.com/intent/tweet?text=Hello而不是http://twitter.com/intent/...时,ChildBrowser会显示登录屏幕,但只要用户提交其凭据,屏幕就会变为白色。我怀疑这是因为Twitter切换到HTTPS。

我通过尝试使用简单的https://twitter.com/intent/...代替window.open来确认是这种情况。在Android上使用本机浏览器时,我没有使用HTTP / HTTPS的问题。但是,本机浏览器会提示我接受未经验证的安全证书。我怀疑这是ChildBrowser的问题 - 它不知道如何处理该提示。

使用原生浏览器弹出窗口并不是一个选项:用户需要能够在点击“推文”后退出该流程。或者'关注'等等,但是'返回' Android设备上的按钮只是将历史记录向后移动一步到POST操作以获取其意图。然后,它从头开始重新启动应用程序,而不是让您返回原始状态。

如何配置ChildBrowser /我的Android Phonegap应用程序以覆盖Twitter上的SSL问题,以便我可以在Childbrowser中运行Web意图?

相关代码是:

window.plugins.childBrowser.showWebPage

我的base="https://twitter.com/intent/tweet?text="; URL=base+encodeURIComponent("it works!"); // works, but asks to accept a certificate window.open(URL); // blank white page window.plugins.childBrowser.showWebPage(URL, { showLocationBar: true }); 文件的白名单配置如下:

cordova.xml

......我不怀疑应该是个问题。但是,交换<access origin="http://127.0.0.1*"/> <!-- allow local pages --> 的基本测试没有改变行为。

我还检查了Twitter意图着陆页的HTTP和HTTPS标头。似乎没有什么特别的东西 - 它们是相同的,除了HTTPS的Strict-Transport-Security标头,它在别处工作(例如Github)。

请帮忙!

1 个答案:

答案 0 :(得分:0)

ChildBrowser不受白名单的约束。白名单仅用于保持主要PhoneGap应用程序不在受信任域之外运行代码。

我有信心如果你从Android获得最新的ChildBrowser代码,你将不再遇到这个问题。我们最近做了一些改变,使其更加健壮。

此外,Libby有一个很好的教程集成了Twitter和ChildBrowser。

http://www.mobiledevelopersolutions.com/home/start/twominutetutorials/tmt5p1