デスクトップアプリ(Electron)のブラウザウィンドウでフォーラムを読み込もうとしています。しかし、ウィンドウが真っ白に表示され、「Cannot read property '_links' of undefined」というエラーが継続して発生します。ローカルのデスクトップウィンドウで Discourse サイトを読み込もうとすると、同様の動作がどのサイトでも見られます。
これを解決する方法はありますか?ご助力いただけますと幸いです。
Electron ウィンドウでアプリを読み込もうとしている理由
ここでは、User API keys specification で説明されているように、ユーザー固有の API キーを取得しようとしています。Discourse がペイロードにエンコードされたキーを送信するために使用するリダイレクト先を提供する段階まで来ています。しかし、アプリがデスクトップアプリであるため、リダイレクト先として提供できる URL がありません。見かけた解決策の1つは、サイトの認可ページをローカルアプリウィンドウに読み込み、そこから変更を検知する方法です。
通常、外部サイトをアプリのブラウザウィンドウに読み込むのは簡単です。基本的には window.loadUrl('https://site.com') を実行するだけです。ほとんどのサイトは問題なく読み込まれます。
しかし、ここではエラーが発生し、ウィンドウ内は真っ白なままです。
以下は、Discourse サイト(おそらく meta.discourse.org も同様で、jQuery に関連しているかもしれません)で表示される完全なエラーメッセージです:
Uncaught TypeError: Cannot read property '_links' of undefined ember_jquery-36a231…6acc1076ef4.js:4069
at Object.initialize (_application-4d2ba03…7938d06cb3.js:75941)
at Object.i.initialize (_application-4d2ba03…27938d06cb3.js:7805)
at _ember_jquery-36a231…acc1076ef4.js:49347
at i.each (_ember_jquery-36a231…acc1076ef4.js:67724)
at i.walk (_ember_jquery-36a231…acc1076ef4.js:67638)
at n.each (_ember_jquery-36a231…acc1076ef4.js:67568)
at n.topsort (_ember_jquery-36a231…acc1076ef4.js:67576)
at t._runInitializer (_ember_jquery-36a231…acc1076ef4.js:49361)
at t.runInstanceInitializers (_ember_jquery-36a231…acc1076ef4.js:49345)
at t._bootSync (_ember_jquery-36a231…acc1076ef4.js:46813)