菜鸟教程小白 发表于 2022-12-13 02:22:51

ios - 与 Host App 的自定义键盘扩展通信在设备中不工作但在模拟器中工作


                                            <p><p>我正在使用自定义键盘扩展。这几乎完成了,但是当我与扩展程序和我的主机应用程序通信数据时,我只是面临设备问题,而我的主机应用程序没有在设备中工作,但在模拟器中工作的情况相同。我的代码如下:</p>

<p><strong>HostAppViewController :</strong></p>

<pre><code> - (void)viewDidLoad {

    _defaultvalue = [ initWithSuiteName:@&#34;group.myapp.myappname.targetKeyboard&#34;];
    ;
    ;
    ;
    // Do any additional setup after loading the view, typically from a nib.
}

- (IBAction)RightAction:(id)sender {


    _defaultvalue = [ initWithSuiteName:@&#34;group.myapp.myappname.targetKeyboard&#34;];
    ;
    ;

}

- (IBAction)leftAction:(id)sender {

    _defaultvalue = [ initWithSuiteName:@&#34;group.myapp.myappname.targetKeyboard&#34;];
    ;
    ;
}
</code></pre>

<p>我使用以下代码在我的扩展目标中检查此 <code>BOOL</code> 值,并根据我的需要更改键盘布局:</p>

<pre><code>-(void)LoadKeyboardview
{

_defaultvalue = [ initWithSuiteName:@&#34;group.myapp.myappname.targetKeyboard&#34;];

      if()
      {
            self.ObjKeyLayout=[[loadNibNamed:@&#34;keyboardLayout&#34; owner:nil options:nil]objectAtIndex:0];
            ;
            self.inputView =self.ObjKeyLayout;

      }
      else{

            self.ObjKeyLayout=[[loadNibNamed:@&#34;leftLayout&#34; owner:nil options:nil]objectAtIndex:0];
            ;

            self.inputView =self.ObjKeyLayout;

      }

}
</code></pre>

<p>相同的代码在模拟器 ios8 设备 iPhone5 中运行良好。请问我在苹果文档中读到的是否需要更多代码,上面写着 <code>NSUserDefaults</code> initWithSuiteName 帮助我,谢谢。</p>

<p><strong>更新:</strong></p>

<p>我已经在 plist 和 setting->keyboard-customkeyboar->Full Access ON</p> 中设置了 <strong>RequestsOpenAccess</strong>

<p>我的扩展列表:</p>

<p> <img src="/image/0Ubaj.png" alt="enter image description here"/> </p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>我得到解决方案,我创建新的临时配置文件并启用 <strong>app-groups</strong> 并从 <code> 我的 <code>Xcode</code> 项目中设置 <code>app group</code> target-->capability--Expand App Group</code> 并点击 <strong>+</strong> 添加应用组,如下图所示:</p>

<p> <img src="/image/HMg3y.png" alt="enter image description here"/> </p>

<p>为我的键盘扩展目标做同样的事情。然后我在 <code>NSuserDefault</code> 中使用了这个设置应用程序组标识符:</p>

<pre><code> _defaultvalue = [ initWithSuiteName:@&#34;group.keyboaredExtention&#34;];
   ;
    ;
</code></pre>

<p>现在在我的设备和模拟器中工作正常。希望对其他人有所帮助。</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 与 Host App 的自定义键盘扩展通信在设备中不工作但在模拟器中工作,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/26162773/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/26162773/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 与 Host App 的自定义键盘扩展通信在设备中不工作但在模拟器中工作