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
Hifumi Takai
July 29, 2025
Programming
31
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
130
AKSで学ぶBicepのアレコレ
thanaism
0
840
Other Decks in Programming
See All in Programming
AGENTS.md Is Not Enough:Build Skills, Don't Download Them
lx_t
0
120
Snowflakeで業務アプリを作ろう。 Snowflakeのアプリ機能解説&実践ガイド
ayumu_yamaguchi
1
280
巨大モノリシックアプリ モダン化大作戦
ktcryomm
1
1k
すこし踏み込む CancellationToken
htkym
2
600
App Storeの外へ──日本のiOSサイドローディング入門 for iOSDC Japan 2026
yuukiw00w
0
220
Starting & Sustaining Code-Based E2E Testing for Non-Coding QA Teams( #jasstniigata )
teyamagu
PRO
1
430
WebRTC映像をAirPlayに対応させる挑戦.pdf
monolithic_adam
0
290
市販E-Readerを乗っ取れ 〜Embedded Swiftで電子ペーパーガジェットを制御する〜
trickart
0
190
世界の中心で、AI(App Intents)をさけぶ ー App Intents中心設計の実践ガイド
touyou
0
620
ゲームコントローラやキーボードのファームウェアをSwiftで書く
kishikawakatsumi
1
250
大喜利で理解するLLM as a Judge / Understanding LLM-as-a-Judge through Ogiri
rockname
0
150
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
220
Featured
See All Featured
Designing Experiences People Love
moore
143
24k
The Curious Case for Waylosing
cassininazir
1
510
Done Done
chrislema
186
16k
Embracing the Ebb and Flow
colly
88
5.2k
Become a Pro
speakerdeck
PRO
31
6.3k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
3
4.3k
Side Projects
sachag
456
43k
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
1
550
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
390
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
510
Evolving SEO for Evolving Search Engines
ryanjones
0
300
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
2
700
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開発とか カスタマイズ受託とかしてます! 絶賛エンジニア募集中!