9

指定された目標が達成されるまで、ユーザーの完全な注意を必要とするアプリケーションを作成しています。目標を達成する前に、ユーザーが「ホーム」ボタンを押そうとすると、無効にするか、ios6 の「キオスク モード」のようにする必要があります。アプリケーションの起動中にプログラムで行う必要がありました。iPhone/iPad の設定メニューで手動で変更して何もしたくありません。アプリケーションでターゲットが完了したら、ホーム ボタンを有効にする必要があります。アプリケーションは企業向けです。したがって、アプリ ストアの承認は必要ありません。これを行う方法?前もって感謝します。

編集:「モバイル構成plist」について読みました。デバイスを再起動する必要がありました。しかし、私はデバイスを再起動したくありません。私のアプリケーションが開始されると、すべてを(プログラムで)処理する必要があります。これにユーザー/スーパーバイザーが介入したくありません。「ガイド付きアクセス」のようにホームボタンを無効にしたいだけですが、アプリ内でプログラムで無効にします。ホームボタンを無効にするために「ガイド付きアクセス」から利用できるプライベートAPIはありますか?

注: ジェイル壊れたデバイス用ではありません。エンタープライズ ライセンス アプリを対象としています。

4

2 に答える 2

11

Zachary Christopoulosは、「モバイル構成 plist」を使用してこれについて投稿しています。

このプロファイルがインストールされると、デバイスの再起動時に起動される最初のアプリが、デバイスを再起動するまで実行される唯一のアプリになります。

Zachary の投稿からの plist の例:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>PayloadContent</key>
    <array>
        <dict>
            <key>PayloadDescription</key>
            <string>Disables the home button.</string>
            <key>PayloadDisplayName</key>
            <string>Home Button Lock</string>
            <key>PayloadIdentifier</key>
            <string>com.zchristopoulos.kiosk</string>
            <key>PayloadOrganization</key>
            <string>Zachary Christopoulos</string>
            <key>PayloadType</key>
            <string>com.apple.defaults.managed</string>
            <key>PayloadUUID</key>
            <string>B2D02E2D-BAC5-431B-8A29-4B91F71C9FC1</string>
            <key>PayloadVersion</key>
            <integer>1</integer>
            <key>PayloadContent</key>
            <array>
                <dict>
                    <key>DefaultsDomainName</key>
                    <string>com.apple.springboard</string>
                    <key>DefaultsData</key>
                    <dict>
                    <key>SBStoreDemoAppLock</key>
                    <true/>
                    </dict>
                </dict>
            </array>
        </dict>
    </array>
    <key>PayloadDescription</key>
    <string>Disables Home Button</string>
    <key>PayloadDisplayName</key>
    <string>Home Button Lock</string>
    <key>PayloadIdentifier</key>
    <string>com.zchristopoulos.hbkill</string>
    <key>PayloadOrganization</key>
    <string>Zachary Christopoulos</string>
    <key>PayloadType</key>
    <string>Configuration</string>
    <key>PayloadUUID</key>
    <string>614D1FE3-F80D-4643-AF6B-D10C4CC8737A</string>
    <key>PayloadVersion</key>
    <integer>1</integer>
</dict>
</plist>
于 2013-02-25T14:07:38.863 に答える
2

プライベートフレームワークを採用するか、デバイスをジェイルブレイクしないと、ホームボタンを自動的に無効にすることはできません。最も近い方法は、エンドユーザーにガイド付きアクセスを使用して、ホームボタンを3回クリックしてアプリケーションを終了するように要求することです。ガイド付きアクセスは、最初に設定アプリケーションの[一般]->[ユーザー補助]でオンにする必要があります。

関連項目:デバイスを再起動せずにホームボタンを無効にする-スタックオーバーフロー

于 2013-02-25T14:02:07.790 に答える