9

iOS 8 より前ではUIMoviePlayerControllerDidEnterFullscreenNotification、メディア プレーヤーが UIWebView から全画面表示になるたびに通知が送信されていました。iOS 8 では、これは発生せず、AVPlayerItemBecameCurrentNotification代わりに通知をリッスンすることを提案する人もいます。これは WKWebView から送信されたものではないようです。UIWindowDidBecomeVisibleNotification追加されたすべてのウィンドウ (広告ネットワークなどを含む) に対して通知が起動されるため、通知のリッスンは機能しません。

要するに、私は一晩中これに取り組んできましたが、ビデオが WKWebView でフルスクリーンで開かれたかどうかを判断する方法がわかりません。どんな助けでも大歓迎です。

編集:確認するために、空のプロジェクトを作成しました。UIWebView とAVPlayerItemBecameCurrentNotificationリスナーを追加し、ビデオを再生して全画面表示にしたときにトリガーされました。その UIWebView を WKWebView に切り替えたところ、その通知はトリガーされなくなりました。

4

2 に答える 2

4

この回避策は iOS8 と iPhone 6 で動作するようです

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

    ...

    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(windowBecameHidden:) name:UIWindowDidBecomeHiddenNotification object:nil];

    return TRUE;
}

- (void)windowBecameHidden:(NSNotification *)notification {

    UIWindow *window = notification.object;

    if (window != self.window) {    // Not my own window: assuming the video window was hidden, maybe add some more checks here.

            // Add code here
    }
}
于 2015-06-04T10:54:35.717 に答える
0

私はちょうど同じことをする必要があります。この回答https://stackoverflow.com/a/7955014/1271424ですべての通知を聞いたところ、新しいウィンドウの作成に関する通知 (_UIWindowContentWillRotateNotification) と MPRemote (MPRemoteCommandTargetsDidChangeNotification) に関する通知を除いて、フルスクリーン モードに関する通知はまったくありません。

iPad 8.1.1 でテスト済み

于 2014-12-11T10:20:52.503 に答える