2021-04-06に更新

Flutterのurl_launcherでApp StoreのURLを開くとフリーズする問題

Flutterで作ったアプリ内で別のアプリに送客をしようと思い、url_launcherでApp StoreのアプリのURLを開くことにしました。

https://pub.dev/packages/url_launcher

テストしてみると特に問題ない……と思いきや、どうもストアの画面からアプリに戻ってみるとアプリがフリーズしていて動かない…!!! Android側は問題ないのですが、iOS側だけ。

調べてみると完全にフリーズしているわけではなく、画面の描画だけがフリーズしており、ボタンは押した時のアニメーションが途中で止まったまま。しかも操作をするとログが流れていくので描画は止まっているけどアプリ自体は動いていて画面遷移などボタンのタップなどは動いている状態のようです。

なぜか全然分からず、とにかくタップ時に遷移するのがまずいのかと思い、 Future.delayed をしてみたり、launchを呼び出す時にどうせURLを開くだけだからとawaitを省略していたのを追記してみたりしましたがそれでも全然うまくいきません。

多分普通のURLだと大丈夫だと思うのですが、App StoreのURLはダメっぽいようです。Schemeを使って開いたら良いのかな、とも思いましたが、どうもSchemeはちょいちょい変わったりURLが古いっぽかったりして全然安心できなかったので、ひとまず使わない方向で考えていくことにしました。

解決方法

そしてついに解決法を見つけました。大変でした……。

ツイッターでシェア
みんなに共有、忘れないようにメモ

だら@Crieit開発者

Crieitの開発者です。 Webエンジニアです(在宅)。大体10年ちょい。 記事でわかりにくいところがあればDMで質問していただくか、案件発注してください。 業務依頼、同業種の方からのコンタクトなどお気軽にご連絡ください。 業務経験有:PHP, MySQL, Laravel, Vue.js, React, Node, RoR 趣味:Elixir, Phoenix, Nuxt, Express, GCP, AWS等色々 PHPフレームワークちいたんの作者

コメント