与Host App的自定义键盘扩展通信,但不适用于设备,但可以在模拟器中使用

尼丁·戈赫尔(Nitin Gohel)

我正在使用自定义键盘扩展名。差不多完成了,但是当我与扩展程序和主机应用程序通信数据时,我只是面临设备问题,这在设备中无法正常运行,但在模拟器中也能正常工作。我的代码如下:

HostApp View控制器:

 - (void)viewDidLoad {

    _defaultvalue = [[NSUserDefaults alloc] initWithSuiteName:@"group.myapp.myappname.targetKeyboard"];
    [_defaultvalue setBool:YES forKey:@"Layout"];
    [_defaultvalue synchronize];
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
}

- (IBAction)RightAction:(id)sender {


    _defaultvalue = [[NSUserDefaults alloc] initWithSuiteName:@"group.myapp.myappname.targetKeyboard"];
    [_defaultvalue setBool:YES forKey:@"Layout"];
    [_defaultvalue synchronize];

}

- (IBAction)leftAction:(id)sender {

    _defaultvalue = [[NSUserDefaults alloc] initWithSuiteName:@"group.myapp.myappname.targetKeyboard"];
    [_defaultvalue setBool:NO forKey:@"Layout"];
    [_defaultvalue synchronize];
}

然后我BOOL使用以下代码在扩展目标中检查此值,并根据需要更改keyBoard布局:

-(void)LoadKeyboardview
{

_defaultvalue = [[NSUserDefaults alloc] initWithSuiteName:@"group.myapp.myappname.targetKeyboard"];

        if([_defaultvalue boolForKey:@"Layout"])
        {
            self.ObjKeyLayout=[[[NSBundle mainBundle]loadNibNamed:@"keyboardLayout" owner:nil options:nil]objectAtIndex:0];
            [self addGesturToKeyBoard];
            self.inputView =self.ObjKeyLayout;

        }
        else{

            self.ObjKeyLayout=[[[NSBundle mainBundle]loadNibNamed:@"leftLayout" owner:nil options:nil]objectAtIndex:0];
            [self addGesturToKeyBoard];

            self.inputView =self.ObjKeyLayout;

        }

}

相同的代码在模拟器ios8设备iPhone5中运行良好。请在苹果文档中读到说NSUserDefaultsinitWithSuiteName可以帮助我解决这个问题的代码,谢谢您。

更新:

我已经在plist中以及在setting-> keyboard-customkeyboar-> Full Access ON中设置了RequestsOpenAccess

我的扩展Plist:

在此处输入图片说明

尼丁·戈赫尔(Nitin Gohel)

我得到的解决方案是我创建新的临时配置文件,并通过点击+添加应用程序组,从我的项目中启用应用程序组和设置app group如以下屏幕截图所示:Xcodetarget-->capability--Expand App Group

在此处输入图片说明

为我的键盘扩展目标做同样的事情。然后,我在以下位置使用了此设置应用程序组标识符NSuserDefault

 _defaultvalue = [[NSUserDefaults alloc] initWithSuiteName:@"group.keyboaredExtention"];
     [_defaultvalue setBool:NO forKey:@"Layout"];
    [_defaultvalue synchronize];

现在,在我的设备和模拟器中都能正常工作。希望对别人有帮助。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

解析不适用于应用发行版,但可以在模拟器上或通过xcode安装在设备上时使用

来自分类Dev

在Xcode中设置自定义类适用于iOS 9.1模拟器,但不适用于iOS 8.4

来自分类Dev

在Xcode中设置自定义类适用于iOS 9.1模拟器,但不适用于iOS 8.4

来自分类Dev

键盘扩展可以在模拟器中使用,但不能在设备上使用

来自分类Dev

自定义 Alexa 技能不适用于回声点,但适用于模拟器

来自分类Dev

webcomponents.js Shadow DOM:host选择器不适用于Safari和Firefox

来自分类Dev

Facebook无法在Android设备上登录,但可以在Android Studio模拟器中使用

来自分类Dev

应用程序是为模拟器创建的,但不适用于“通用iOS设备”

来自分类Dev

CSS不适用于IE和Firefox,但可以在Chrome中使用

来自分类Dev

RavenDB查询不适用于C#,但可以在RavenDB Studio中使用吗?

来自分类Dev

Excpetionmapper不适用于Wildfly Swarm,但可以在Wildfly Server中使用

来自分类Dev

查询不适用于 PHP,但可以直接在 Mysql 中使用

来自分类Dev

iOS 10.3 文本转语音适用于模拟器但不适用于设备

来自分类Dev

该应用程序适用于模拟器但不适用于实际设备

来自分类Dev

Firestore 规则适用于模拟器但不适用于网站

来自分类Dev

Android 谷歌地图适用于模拟器,但不适用于真机

来自分类Dev

iOS绑定库不适用于模拟器,但适用于设备

来自分类Dev

WebView 仅适用于模拟器而不适用于设备

来自分类Dev

日期条件不适用于我的应用程序,但可以在SQL Server中使用

来自分类Dev

Azure函数-Host.json不适用于Azure应用程序设置

来自分类Dev

Apache Virtual Host proxypass不适用于HTTPS中的根URL

来自分类Dev

使“ host -v hostname”命令适用于CentOS 7

来自分类Dev

Magento:自定义模块适用于本地主机但不适用于服务器

来自分类Dev

addTarget() 不适用于自定义扩展

来自分类Dev

Ruby On Rails回调不适用于Heroku,但可以在本地使用

来自分类Dev

Android模拟器上的onKeyDown方法不适用于物理键盘DPAD

来自分类Dev

在.htaccess文件中使用HTTP_HOST

来自分类Dev

在_Host.cshtml中使用变量

来自分类Dev

Forward GeoCoding正在模拟器上运行,但不适用于iPhone

Related 相关文章

  1. 1

    解析不适用于应用发行版,但可以在模拟器上或通过xcode安装在设备上时使用

  2. 2

    在Xcode中设置自定义类适用于iOS 9.1模拟器,但不适用于iOS 8.4

  3. 3

    在Xcode中设置自定义类适用于iOS 9.1模拟器,但不适用于iOS 8.4

  4. 4

    键盘扩展可以在模拟器中使用,但不能在设备上使用

  5. 5

    自定义 Alexa 技能不适用于回声点,但适用于模拟器

  6. 6

    webcomponents.js Shadow DOM:host选择器不适用于Safari和Firefox

  7. 7

    Facebook无法在Android设备上登录,但可以在Android Studio模拟器中使用

  8. 8

    应用程序是为模拟器创建的,但不适用于“通用iOS设备”

  9. 9

    CSS不适用于IE和Firefox,但可以在Chrome中使用

  10. 10

    RavenDB查询不适用于C#,但可以在RavenDB Studio中使用吗?

  11. 11

    Excpetionmapper不适用于Wildfly Swarm,但可以在Wildfly Server中使用

  12. 12

    查询不适用于 PHP,但可以直接在 Mysql 中使用

  13. 13

    iOS 10.3 文本转语音适用于模拟器但不适用于设备

  14. 14

    该应用程序适用于模拟器但不适用于实际设备

  15. 15

    Firestore 规则适用于模拟器但不适用于网站

  16. 16

    Android 谷歌地图适用于模拟器,但不适用于真机

  17. 17

    iOS绑定库不适用于模拟器,但适用于设备

  18. 18

    WebView 仅适用于模拟器而不适用于设备

  19. 19

    日期条件不适用于我的应用程序,但可以在SQL Server中使用

  20. 20

    Azure函数-Host.json不适用于Azure应用程序设置

  21. 21

    Apache Virtual Host proxypass不适用于HTTPS中的根URL

  22. 22

    使“ host -v hostname”命令适用于CentOS 7

  23. 23

    Magento:自定义模块适用于本地主机但不适用于服务器

  24. 24

    addTarget() 不适用于自定义扩展

  25. 25

    Ruby On Rails回调不适用于Heroku,但可以在本地使用

  26. 26

    Android模拟器上的onKeyDown方法不适用于物理键盘DPAD

  27. 27

    在.htaccess文件中使用HTTP_HOST

  28. 28

    在_Host.cshtml中使用变量

  29. 29

    Forward GeoCoding正在模拟器上运行,但不适用于iPhone

热门标签

归档