JSAPI をカスタマイズするプロセスで、interceptEvent と handleEvent の違いは何ですか?
A: コンテナーの他のイベントを監視する場合は、interceptEvent に記述します。イベントを処理する場合は、handleEvent に記述します。インターフェイスが true を返せば問題ありません。
インターフェイスが true を返すと、システムはイベントの受け渡しを停止します。false の場合は、イベントは他のプラグインに継続的に渡されます。
JSAPI をカスタマイズするプロセスで、config.setEvents("event") にイベントを追加しましたが、プラグインの onPrepare にもイベントを再度追加する必要があるのはなぜですか?
A: コンテナー プラグインは遅延ロードされるため、つまりページ作成時にロードされます。HTML5 コンテナーは、外部の config.setEvents を介して監視対象のイベントを挿入するため、JS 呼び出しが発生した場合にのみ、対応するプラグイン オブジェクトがインスタンス化されます。実際にインスタンス化されたプラグインの場合、配布されるイベントは、プラグインの onPrepare にあるイベントです。そのため、config.setEvents("event") のイベントが、内部の onPrepare のイベントと一致していることを確認する必要があります。
JSAPI プラグインをカスタマイズするプロセスで、page、session、service の違いは何ですか?
A: page は webview に対応します。session は mPaaS の App オブジェクトに対応します。service はグローバル シングルトンです。
- プラグインがページ レベルとして登録されている場合、WebView を作成するたびにプラグイン インスタンスが作成され、WebView が破棄されると、対応するプラグインの
onReleaseがコールバックされます。 - プラグインがセッション レベルとして登録されている場合、App オブジェクトを作成するたびにプラグインが作成されます。
- プラグインがサービス レベルとして登録されている場合、グローバルに 1 つのプラグインのみが作成され、コンテナーを初めて開いたときにプラグインが作成されます。