小编rub*_*nbs的帖子

iOS在UIWebBrowserView上以编程方式禁用Quicktype Keyboard

我正在为iOS开发PhoneGap应用程序,我需要在键盘上禁用自动预测文本.

我找到了很多UITextView像这样的解决方案:

在UITextView上以编程方式禁用iOS8 Quicktype键盘

ios8 xcode如何在UIKeyboard上删除QuickType(自动完成/自动建议)

...但PhoneGap应用程序UIWebBrowserView内部.

我也知道用于禁用自动预测的html属性.它们只适用于常规的html输入,但我的contenteditable元素是我UIWebBrowserView的文本编辑器的可编辑区域(在我的例子中是CKEditor).

<!-- Does not work -->
<div contenteditable="true" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false">
</div>
Run Code Online (Sandbox Code Playgroud)

那么,有没有办法在iOS上以编程方式禁用自定义元素的自动预测功能?

非常感谢任何帮助!

contenteditable ios cordova

11
推荐指数
1
解决办法
1167
查看次数

由于内容安全策略问题,Safari 无法从 blob 创建 Worker

我正在尝试在我的网页上创建 Worker:

const url = URL.createObjectURL(blob);
const worker = new Worker(url);
Run Code Online (Sandbox Code Playgroud)

Safari 在控制台中显示以下错误:

拒绝加载 blob:https://my.address.com/5fa7b5e6-cb10-4b7c-967b-e95cae58cd71,因为它既没有出现在内容安全策略的 child-src 指令中,也没有出现在 default-src 指令中。

我的页面上有以下内容安全策略标签:

<meta http-equiv="Content-Security-Policy" content="worker-src 'self' blob:">
Run Code Online (Sandbox Code Playgroud)

但 Safari 似乎忽略了它。我敢打赌我尝试了 SCP 指令(例如worker-src、object-src、script-src、child-src 等)和源(*、blob:、'unsafe-eval'、'unsafe-inline)的所有可能组合', ETC。)

感谢任何想法!

注意事项

  1. 当我通过 http 在 Safari 中打开网页时,创建的 Worker 没有任何错误。问题是通过 https 打开时。
  2. Worker 在 Chrome、Firefox、Edge 中运行良好
  3. 我的页面上只有一个 Content-Security-Policy 标签
  4. 在 Safari 中检查 Http 响应标头时,它们看起来不错

safari blob web-worker content-security-policy

11
推荐指数
1
解决办法
6088
查看次数

在iOS 9中隐藏UIWebView的快捷键盘

我正在为iOS开发PhoneGap应用程序,我需要摆脱新的iOS 9快捷键.现在我在该- (void)viewDidLoad方法中执行以下操作

if ([self.webView respondsToSelector:@selector(inputAssistantItem)]) {
    UITextInputAssistantItem *inputAssistantItem = [self.webView inputAssistantItem];
    inputAssistantItem.leadingBarButtonGroups = @[];
    inputAssistantItem.trailingBarButtonGroups = @[];
}
Run Code Online (Sandbox Code Playgroud)

这隐藏了撤消/重做和复制/粘贴按钮,但快捷栏仍然显示在键盘上并且上面有导航按钮.

在此输入图像描述

我怎样才能完全摆脱快捷栏.

谢谢你的帮助!


*** 更新1 ***

我的完整工作代码如下.希望这可以帮到某人(感谢@Clement的回复)

#import <objc/runtime.h>

- (void) hideKeyboardShortcutBar: (UIView *)view
{
    for (UIView *sub in view.subviews) {
        [self hideKeyboardShortcutBar:sub];
        if ([NSStringFromClass([sub class]) isEqualToString:@"UIWebBrowserView"]) {

            Method method = class_getInstanceMethod(sub.class, @selector(inputAccessoryView));
            IMP newImp = imp_implementationWithBlock(^(id _s) {
                if ([sub respondsToSelector:@selector(inputAssistantItem)]) {
                    UITextInputAssistantItem *inputAssistantItem = [sub inputAssistantItem];
                    inputAssistantItem.leadingBarButtonGroups = @[];
                    inputAssistantItem.trailingBarButtonGroups = @[];
                }
                return nil;
            });
            method_setImplementation(method, …
Run Code Online (Sandbox Code Playgroud)

objective-c uiwebview ios cordova

7
推荐指数
1
解决办法
1635
查看次数