Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
LIFFで位置情報を扱う
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Hifumi Takai
July 29, 2025
Programming
42
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
LIFFで位置情報を扱う
LINEミニアプリ Tech Meetup #2
https://classmethod.connpass.com/event/356983/
Hifumi Takai
July 29, 2025
More Decks by Hifumi Takai
See All by Hifumi Takai
LIFFアプリにJPYC決済を導入しよう
thanaism
0
140
AKSで学ぶBicepのアレコレ
thanaism
0
850
Other Decks in Programming
See All in Programming
AI時代のコードレビューは人に向けるな、仕組みに向けろ
texmeijin
5
3.7k
R8 の設定見直しでアプリサイズ削減
andpad
0
220
Rでドレミ/Do-Re-Mi_with_R
florets1
0
130
IBM Bob でAI駆動開発『QC-Playbook』
ichirokano2
0
110
AWS CDKのカスタムリソースでContinuum(旧Security Agent)を実装した話 | Implementing Continuum (formerly Security Agent) via AWS CDK Custom Resource
akihisaikeda
2
150
AWSに止められる覚悟してますか?
morizo_1984
2
540
GemmaをJevのように使ってみる / Use Gemma like Jev
kishida
5
790
iOS 27でニュースアプリはどう変わる!? 〜日経電子版の新機能対応と、開発事例から〜
lynnswap
7
13k
Jetpack Compose Mechanisms
skydoves
3
820
最近”作らせてる” ローカルAIアプリの話
akit37
0
480
ハーネス設計入門 〜 基礎知識の整理から実務へのステップアップ 〜
kinopeee
28
33k
Agents on Rails - Rails at Scale 2026
irinanazarova
0
570
Featured
See All Featured
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
530
How to train your dragon (web standard)
notwaldorf
96
6.9k
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
1
340
Six Lessons from altMBA
skipperchong
29
4.5k
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
12k
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.8k
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
520
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.5k
Mind Mapping
helmedeiros
1
400
Technical Leadership for Architectural Decision Making
baasie
3
600
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
Believing is Seeing
oripsolob
1
240
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開発とか カスタマイズ受託とかしてます! 絶賛エンジニア募集中!