【追記】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に遅延が発生するようです。正式な対応を待ちたいと思います。
(中略)
/* 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);
}