LoginSignup
4
4

More than 3 years have passed since last update.

【追記あり】BlazorクライアントアプリがiPadOS13で動かない問題(解決)

Last updated at Posted at 2019-10-29

【追記】2019/12/26日現在(.Net Core3.1 x iOS13.3)では、何もしなくても動作するようになっています。

iPadをiPadOS(13)にアップデートしたところ、Blazorクライアントアプリ(WebAssembly)が動作しなくなってしまいました。Blazorで作成されたサイトは初めのloadingで止まってしまいます。

いくつかのissuesが報告されています。現在は、クローズされています。

[wasm] Safari Maximum call stack size exceeded #15981
[blazor-wasm] opening a blazor application on ios does not work #15360
[interp][wasm] Fix iOS13 "Maximum call stack size exceeded." #17397

2019/12/26追記 2019/12/26日現在(.Net Core3.1 x iOS13.3)では、下記の対応を行うとエラーになり、動作しなくなります。

一応の対応策は、blazor.webassembly.jsに手を入れることのようです。
このissuesにあるファイル([blazor.webassembly.ios13.fix.zip](https://github.com/mono/mono/files/3620747/blazor.webassembly.ios13.fix.zip)) から、setTimeout検索し、タイムアウト値を調整します。ファイルは1000となっていますが、2000に設定することで動作しました(iPadOS 13.2でも確認)。ファイルを書き換えたら、プロジェクトフォルダの\bin\Debug\netstandard2.0\dist\_framework\blazor.webassembly.jsを置き換えます。

ただし、この方法はloadingに遅延が発生するようです。正式な対応を待ちたいと思います。

blazor.webassembly.js
中略)
/* Theses hack are for buggy iOS/Safari 13 */
if (window.Blazor.isStarted)
{
    try {
        l(r.next(e));
    } catch (e) {
        a(e)
    }
}
else {
    setTimeout(function (l, r, e) {
        try {
            l(r.next(e));
        } catch (e) {
            a(e)
        }
    }, 2000, l, r ,e);
}
4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4