-->

PhoneGap的/科尔多瓦ChildBrowser将无法运行Twitter的网站意图(SSL?)(

2019-10-16 19:37发布

我想Twitter的分享功能整合到我的Android的PhoneGap的应用程序,而不是重新实现以缩短网址和跟踪鸣叫长度的控制,我想我会在使用他们的预制网络意图https://twitter.com/intent/...

所以我想推出像一个URL https://twitter.com/intent/tweet?text=Hello在ChildBrowser窗口,这样,我可以让Twitter的界面接管。 用户可以登录他们的凭据,一旦他们签署,从网址参数的文本将出现在鸣叫框。

它不会工作。 当我使用http://twitter.com/intent/...而不是https://twitter.com/intent/... ,ChildBrowser显示登录屏幕,但只要用户提交他们的凭证,屏幕变白。 我怀疑这是因为Twitter切换到HTTPS。

我证实,这是由尝试简单的情况下window.open而不是window.plugins.childBrowser.showWebPage 。 我在Android上使用本机浏览器时,与HTTP / HTTPS没有问题。 然而,原生浏览器会提示我接受未验证的安全证书。 我怀疑这是用ChildBrowser问题 - 它不知道如何处理的提示。

使用本地浏览器酥料饼的根本不是一个选项:用户需要能够打“分享Tweet”或“关注”等后退出的过程中,但在Android设备上的“返回”按钮只是将一个历史后退一步,为他们的意图POST操作。 然后,重新启动,而不是返回到初始状态,从头开始应用。

如何配置ChildBrowser /我的Android应用程序的PhoneGap覆盖在Twitter上SSL的问题,这样我就可以在Childbrowser运行网络意图?

相关的代码是:

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 -->

......我不怀疑应该是一个问题。 然而,交换的基本测试origin=".*"产生的任何变化。

我还检查了HTTP和HTTPS标头Twitter的意图登陆页面。 虽然目前没有出现任何东西脱节的 - 他们是相同的,除了严格,运输安全头为HTTPS,这在其他地方工作(如Github上)。

请帮忙!

Answer 1:

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

我相信,如果你去得到的Android,你会不会再碰到这个问题的最新ChildBrowser代码。 我们最近做了一些改动,使其更加强劲。

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

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



文章来源: Phonegap / Cordova ChildBrowser won't run Twitter web intents (SSL?)