改变ios键盘的方向?

Posted

技术标签:

【中文标题】改变ios键盘的方向?【英文标题】:Change orientation of ios keyboard? 【发布时间】:2015-06-07 15:46:08 【问题描述】:

我正在使用 phonegap.build,我需要在我的游戏应用上执行以下操作:

游戏一直强制为横向模式,没有画布版本,这是iosandroid唯一的游戏,我用phonegap。

使用 facebook-connect 插件:

https://github.com/Wizcorp/phonegap-facebook-plugin

我有一个对话框,我用 facebook-connect api 打开它:

facebookConnectPlugin.showDialog(对象选项,函数成功,函数失败)

在我拥有的选项中:


    method: "apprequests",
    message: "Come on man, check out my application."

结果如下:

我的窗口有问题,它以纵向模式打开,并且我有一个仅限横向的应用程序(这意味着用户在提示到此屏幕时应该更改方向,这是一种不好的行为)

我为此搜索了几个小时的解决方案,但没有运气。

现在,如果我让它保持这种状态,并按下“搜索更多朋友”输入,键盘会以横向模式打开,这会导致这种尴尬的行为:

我的问题是:

1) 有什么办法可以将 facebook 的弹出框改成横向的?

2) 如果 1 为否,是否可以通过 config.xml 中的任何配置(这是 phonegap 构建)或任何执行此操作的插件来控制键盘的打开方式(横向或纵向)

3) 如果全部否决,我有哪些选项可以邀请朋友加入我的应用程序(邀请不是选项,这不是画布应用程序)

谢谢

【问题讨论】:

嗯,这可能是一个复杂的管理问题。 <preference name="Orientation" value="" /> 在您的 config.xml 中的值是多少?此外,它的行为方式是否与方向锁定和解锁(iOS 设置)相同? 这不是 Facebook 开发人员负责的,因为它已在那里修复:developers.facebook.com/docs/ios/change-log-3.x(3.18:修复了链接到 iOS 8 SDK 时 Web 对话框的方向)。 你在手机和模拟器上都试过了吗? 只是为了回答你的问题,只要有<preference name="Orientation" value="landscape" />就足以让FB SDK适应应用程序的方向。在 Android 上它确实可以完美运行。 帮助!任何人?某物?任何事物?这些偏好根本不起作用 【参考方案1】:

@totothegreat, 在#1我不知道。 在 #2 上,这在 Andrdoid 上是可能的。我不知道iOS。 在 #3 上,我对 facebook 的东西了解不多。

对于 Android,您需要将方向设置为横向,并且您需要告诉 Android 您将处理方向并处理重绘(您永远不需要这样做)。这意味着您也可以控制键盘。在这个thread 中,Ben Jones 创建了一个稍微不同的解决方案。

以下是您需要添加到 AndroidManifest.xml<activity> 元素的两个 XML 属性(android:configChanges 和 android:screenOrientation),但是您可以交换这两个属性config.xml

中的等价物
     <activity android:name="basicScreenSize" android:label="@string/app_name"
                    android:theme="@android:style/Theme.Black.NoTitleBar"
                    android:configChanges="orientation|keyboardHidden|keyboard|locale"
                    android:screenOrientation="landscape">

您要查找的文档隐藏在文档的&lt;activity&gt; section 中。同样,您需要的属性是 android:configChanges 和 android:screenOrientation。

最后,如果你想用 config.xml 来实现它,那么我建议你read the thread with Ben Jones' implementation。祝你好运,如果仍有问题,请给我回短信。

【讨论】:

对不起,这个问题只针对 ios……所以你的回答是不相关的…… 仅供参考:如果这有帮助。目前没有办法在横向模式下使用 iOS 请求启动画面。我不太了解iOS,但我可以想象有一个解决方案,但它必须来自iOS的本机端。您可以在此阅读我的NOTES。错误-> 日期:2015-06-07 顺便说一句,您可能想修改您的原始帖子以说它仅适用于 iOS。该帖子暗示您需要两个答案。祝你好运【参考方案2】:

@totothegreat,关于这个问题——我提供帮助的部分原因是我需要自己解决这个问题。这就是我所拥有的。要在 iOS 上进行此更改,您需要编写一个 Info.plist(或等效文件)——它是一个 XML 文件。这个 Info.plist 相当于 AndroidManifest.xml 和 config.xml

谷歌:apple ios Info.plist keyboard landscape

到目前为止我有:

    About Information Property List Files UIInterfaceOrientation UISupportedInterfaceOrientations

因此,您可以在Phonegap 的config.xml 中集成这些属性。一个phonegap,从

开始

Config File Elements

将这些 属性 添加到 config.xml 的说明如下:

config-file Element

请注意Config File Element 中的文档说添加到 config.xml 的格式类似于插件,而 config-文件元素示例来自插件。

让我知道进展如何。我需要自己尝试一下。 杰西

【讨论】:

@totothegreat,我现在可以使用标准的Phonegap Build。请注意,他们只是在两 (2) 天前升级。 screenshot of layout

以上是关于改变ios键盘的方向?的主要内容,如果未能解决你的问题,请参考以下文章

iOS 8 自定义键盘方向更改

iOS 自定义键盘自动布局

iOS 8自定义键盘:更改高度

iOS 键盘处理(改变键盘为完成键),UITextField键盘显示隐藏,弹出,回弹

键盘操作DIV

iOS 根据键盘的高度动态改变UIView的高度