Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
LIFFで位置情報を扱う
Search
Hifumi Takai
July 29, 2025
Programming
0
4
LIFFで位置情報を扱う
LINEミニアプリ Tech Meetup #2
https://classmethod.connpass.com/event/356983/
Hifumi Takai
July 29, 2025
Tweet
Share
More Decks by Hifumi Takai
See All by Hifumi Takai
LIFFアプリにJPYC決済を導入しよう
thanaism
0
23
AKSで学ぶBicepのアレコレ
thanaism
0
790
Other Decks in Programming
See All in Programming
AIによるイベントストーミング図からのコード生成 / AI-powered code generation from Event Storming diagrams
nrslib
2
1.9k
Automatic Grammar Agreementと Markdown Extended Attributes について
kishikawakatsumi
0
200
AIによる開発の民主化を支える コンテキスト管理のこれまでとこれから
mulyu
3
470
インターン生でもAuth0で認証基盤刷新が出来るのか
taku271
0
190
React 19でつくる「気持ちいいUI」- 楽観的UIのすすめ
himorishige
11
7.5k
カスタマーサクセス業務を変革したヘルススコアの実現と学び
_hummer0724
0
740
生成AIを使ったコードレビューで定性的に品質カバー
chiilog
1
280
AI巻き込み型コードレビューのススメ
nealle
2
1.3k
Rust 製のコードエディタ “Zed” を使ってみた
nearme_tech
PRO
0
210
CSC307 Lecture 03
javiergs
PRO
1
490
MUSUBIXとは
nahisaho
0
140
今こそ知るべき耐量子計算機暗号(PQC)入門 / PQC: What You Need to Know Now
mackey0225
3
380
Featured
See All Featured
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
60
42k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.3k
Raft: Consensus for Rubyists
vanstee
141
7.3k
The Curious Case for Waylosing
cassininazir
0
240
A Tale of Four Properties
chriscoyier
162
24k
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.1k
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
55
For a Future-Friendly Web
brad_frost
182
10k
Mobile First: as difficult as doing things right
swwweet
225
10k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
99
It's Worth the Effort
3n
188
29k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.4k
Transcript
LIFFで位置情報を扱う 意外と多い落とし⽳ キリフダ株式会社 タナイ @okinawa__noodle
はじめに 本⽇のLT内容は、以下の記事でも解説しています! (ほかにもZennにいくつか記事を投稿しているので読んでもらえると嬉しいです) 2 記事読み込みはコチラのQRで!
公式ドキュメントを⾒よう LIFFは、 ネイティブアプリのWebView機能の上で動作する 普通のWebアプリ https://developers.line.biz/ja/docs/line-mini-app/discover/specifications/#html5-support https://developers.line.biz/ja/docs/liff/overview/#liff-browser-spec もちろん使える 3 よく見ると添付画像がミニアプリの画面ではなく 位置情報も許可されていない
WebViewごとに設定箇所が分かれる 4 LIFFは、 ネイティブアプリのWebView機能の上で動作する 普通のWebアプリ ⼀般ユーザーからしたら どれも同じくブラウザだが… 以下すべて位置情報の設定箇所が異なる! • Safari
• iOS版 Google Chrome • iOS標準のQRリーダーから開くWebView • LIFFブラウザ わかるわけない! そもそもLIFFを使う動機のひとつに一般ユーザーが慣れ親しんだ LINE上でシームレスな体験を提供したい というのがある
LINEアプリ内の設定もあわせるともっと増える LINE関連の設定は⼤きく分けて以下の4つ 5 1. OSレベルでの位置情報許可 LINEアプリ⾃体がOS設定レベルで位置情報を取得する要求に対しての許可 2. Geolocation APIレベルでの位置情報許可 LIFFブラウザで開かれたWebアプリがGeolocation
APIで位置情報を取得する要求に対しての許可 3. LINEプラットフォームによる位置情報収集 LINEプラットフォームによる位置情報収集に対しての許可 4. LINE Beacon LINE Beaconに対しての許可 権限不⾜時に Geolocation APIは どちらの拒否か 判別不可 !
1. OSレベルの許可 • なにかの拍⼦でユーザーが⼀度拒否していると、 LIFF側から要求してもこのダイアログが出ない • 拒否状態から復帰させようとすると、 設定箇所が深い位置にあり分かりにくい • 「正確な位置情報」をONにしないと
誤差が数キロ単位で出るので実質使えない 6 OSレベルの許可ダイアログ ユーザー⾃⾝に解決させるのが だいぶきつい なにかの拍⼦で 拒否していると 出てこない !
位置情報メッセージ送信画⾯なら直接設定画⾯へ LIFFから位置情報を取得失敗した時に、 この画⾯に誘導できれば楽 • Messaging APIで説明メッセージ送信し、 クイックリプライで位置情報アクション • liff.sendMessagesを利⽤できる条件なら メッセージを送り、それに対して返信
7 liff.sendMessagesにクイックリプライ付きで応答する例 liff.sendMessagesを挟むと、 応答扱いで無料となる
2. Geolocation APIレベルの許可 OSレベルでの位置情報の許可が取れている場合、 WebViewはGeolocation APIによる位置情報取得のダイアログを表⽰する。 8 OSレベルの許可で「次回または共有時に確認」を設定していると: OSレベルの要求ダイアログが都度開く設定のため、 連続で似たようなダイアログが表⽰されるユーザー体験になる
Geolocation APIレベルの許可ダイアログ ! OSレベルで拒否されていると、 このダイアログすら表示されない ことに注意
iOS WebViewでGeolocation APIレベルの要求を2回連続で拒否 すると、 永久にダイアログが表示されなくなる! 最⼤の落とし⽳:iOSでの連続拒否 9 ! チャンスは 2回まで
• ドメイン単位で永続的に拒否が既定値に • LINEアプリの設定画⾯からもリセット不可 • ユーザーが意図せず「詰む」ケースとなる 通常Safariは詳細設定からリセット可能だが、 LIFFブラウザだと対応する設定へのアクセス⼿段がない
永続拒否への対策 10 位置情報の取得要求をおこなう 前に、 説明ダイアログを表示 して事前に離脱させる 1 位置情報が必要な理由を 明確に伝え、 ユーザーの誤操作を防ぐ
ドメインを変える (パワープレイなので対策と言えるかは微妙) 2 • iOS WebViewの許可情報はドメイン単位 • LIFFのエンドポイントURLを変更すれば初期状態に • 認証済みミニアプリの場合は再審査が必要 • 本番URLを固定し、位置情報関連のみ 別ドメインに切り出す⼯夫もありえなくはないが… ミニアプリポリシー「外部のウェブサイトへの誘導」に該当するため、 すんなり審査通るかは未知数
⽤途によってはLINE Beaconも 11 LINE Beacon 端末(開発用途) (引用:https://beacon.theshop.jp/items/6617930) 端末導⼊コスト:5,000円以上 同時に兼⽤不可。⼀応、電⼦⼯作できるなら⾃作もできるらしい※ 要ユーザー設定:LINEアプリのBeacon許可ほか
デフォルトOFFの設定のため、ユーザー誘導が別途必要 ※ ラズベリーパイでLINE Beaconが作成可能に! 「LINE Simple Beacon」仕様を公開しました 施設への往訪トリガーなどは実現可能! 永続拒否問題を回避しながらMessaging APIのイベントを受領 ドキュメントに明⽰的に書かれていないポイントとして、 ユーザー設定は必要だが、往訪してから許可してもイベント発⽕はする模様
まとめ 12 まずはOSレベルの許可をうながそう 位置情報アクションなどを活⽤ ユーザーの連続拒否を防ぐ設計にしよう くどくはなるが、事前ダイアログで拒否する前に離脱を促進 ワンチャンLINE Beaconも使ってみよう ハードルは⾼いが、Geolocation APIではできないことも実現可能
ふだんはSaaS開発とか カスタマイズ受託とかしてます! 絶賛エンジニア募集中!