我试图将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)。
请帮忙!
答案 0 :(得分:0)
ChildBrowser不受白名单的约束。白名单仅用于保持主要PhoneGap应用程序不在受信任域之外运行代码。
我有信心如果你从Android获得最新的ChildBrowser代码,你将不再遇到这个问题。我们最近做了一些改变,使其更加健壮。
此外,Libby有一个很好的教程集成了Twitter和ChildBrowser。
http://www.mobiledevelopersolutions.com/home/start/twominutetutorials/tmt5p1