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が古いっぽかったりして全然安心できなかったので、ひとまず使わない方向で考えていくことにしました。
そしてついに解決法を見つけました。大変でした……。
コメント