Guides and Sample Code

Developer

Playground Book Format Reference

On This Page

PlaygroundRemoteLiveViewProxyDelegate Protocol
PlaygroundRemoteLiveViewProxyDelegateプロトコル

A type that supports receiving asynchronous messages from an always-on live view.
ある型、それは常時接続のライブビューからの非同期のメッセージの受け取りをサポートします。

Overview
概要

This protocol enables an object to become the delegate of a PlaygroundRemoteLiveViewProxy Class object. Use this protocol to receive messages from a remote proxy and to be informed when the connection with the remote proxy is closed.
このプロトコルは、あるオブジェクトにPlaygroundRemoteLiveViewProxyクラスオブジェクトの委任先になる能力を与えます。このプロトコルを使ってリモートプロキシからメッセージを受け取って、リモートプロキシとの接続が閉じられるならば通知されるようにしてください。

The following example shows a class extension that starts an assessment of the users' current progress and terminates the current playground when the always-on live view sends a message that it has finished the current task. Line 1 adds support for PlaygroundRemoteLiveViewProxyDelegate as an extension to the MyPlaygroundPageManager class. Lines 2-9 implement the method for receiving the message from the always-on live view. Lines 4 and 5 checks if “finishedTask” is true. Line 6 calls a custom function to update the user assessment, and line 7 terminates the current playground.
以下の例はあるクラス拡張を示します、それはユーザの現在の進捗の評価を開始して、常時接続のライブビューがメッセージを送る時、それが現在の作業を完了してしまったという時に現在のプレイグラウンドを終了します。行1は、PlaygroundRemoteLiveViewProxyDelegateに対するサポートをある拡張としてMyPlaygroundPageManagerクラスに加えます。行2-9は、常時接続のライブビューからメッセージを受け取るためのメソッドを実装します。行4と5は、「finishedTask」がtrueかどうか確認します。行6は、カスタム関数を呼び出してユーザ評価を更新します、そして行7は現在のプレイグラウンドを終了します。

  1. extension MyPlaygroundPageManager: PlaygroundRemoteLiveViewProxyDelegate {
  2.    func remoteLiveViewProxy(_ remoteLiveViewProxy: PlaygroundRemoteLiveViewProxy,
  3.                             received message: PlaygroundValue) {
  4.       guard case let .dictionary(dict) = message else { return }
  5.       if case .boolean(_)? = dict["finishedTask"] {
  6.          updateAssessmentStatus()
  7.          PlaygroundPage.current.finishExecution()
  8.       }
  9.    }
  10. }

This example shows setting the proxy for a live view to a MyPlaygroundPageManager object.
この例は、あるライブビューに対するプロキシをMyPlaygroundPageManagerオブジェクトに設定することを示します。

  1. import PlaygroundSupport
  2. let proxy = PlaygroundPage.current.liveView as! PlaygroundRemoteLiveViewProxy
  3. let delegate = MyPlaygroundPageManager()
  4. proxy.delegate = delegate

Protocol Methods
プロトコルメソッド

remoteLiveViewProxyConnectionClosed(_:)

Informs the handler that the connection between the proxy and the live view was closed.
ハンドラにプロキシとライブビューの間の接続が閉じられたことを告知します。

Declaration
宣言

  1. func remoteLiveViewProxyConnectionClosed(_ remoteLiveViewProxy: PlaygroundRemoteLiveViewProxy)

Parameters
パラメータ

  • remoteLiveViewProxy: The live view connected to the proxy object.
    remoteLiveViewProxy: プロキシオブジェクトに接続されるライブビュー。

remoteLiveViewProxy(_:, received:)

Allows the handler to receive a message from an always-on remote live view proxy.
ハンドラに常時接続のリモートライブビュープロキシからのメッセージを受け取るようにします。

Declaration
宣言

  1. func remoteLiveViewProxy(_ remoteLiveViewProxy: PlaygroundRemoteLiveViewProxy, received message: PlaygroundValue)

Parameters
パラメータ

  • remoteLiveViewProxy: The live view connected to the proxy object.
    remoteLiveViewProxy: プロキシオブジェクトに接続されるライブビュー。

  • message: A message encoded as a PlaygroundValue Enumeration.
    message: PlaygroundValue列挙としてエンコードされるメッセージ。