ディープリンクでパラメータを渡す
ミニアプリではホストアプリからパラメータを取得することが可能です。例えば、ミニアプリへのディープリンクにクエリパラメータ (i.e. ?param=value
)とフラグメント (i.e. #someValue
)を持たせることで、ミニアプリから当該パラメータへのアクセスが可能になります。
リンクアプリのディープリンク設定はこちらです。
https://one.rakuten.co.jp/miniapp/MINI_APP_ID?yourParam=yourValue&anotherParam=test#yourFragmentValue
パラメータを受け取る
ミニアプリを起動すると、ミニアプリのWebViewのURLにクエリパラメータとフラグメントが付加されます。
window.location.search
および window.location.hash
のウェブスタンダードを通じてパラメータにアクセスできます。以下は一例です。
// Retrieve "yourParam" parameter
const param = window.url.searchParams.get(
"yourParam"
)
// Retrieve fragment value
const fragment = window.location.hash
注意:パラメータのサニタイズ・使用パラメータへのセキュリティ確保等はミニアプリ側でご用意ください。クロスサイトスクリプティング攻撃等への対策も強く推奨しております。詳しくは、OWASPの DOM based XSS Prevention Cheat Sheet, Web Parameter Tampering Guideをご確認ください。
サポートされる値
クエリパラメータおよびフラグメントではRFC 3986(URI仕様)に定められた標準文字をサポートしています。 クエリ とフラグメントのセクションをご参照ください。
サポートしている標準文字
0
-9
a
-z
A
-Z
? / : @ - . _ ~ ! $ & ' ( ) * + , ; = # [ ]
- 「
#
」は1文字のみ使用可能です。「#
」はフラグメント文字列の開始点区切りに使用します)。 - Androidの場合:「
'
」は、AndroidデバイスのChrome WebViewによって自動でパーセントエンコード値「%20
」に変換されます。
- 「
- パーセントエンコード文字(「
%
」に16進数2文字の形式)
注記1:サポート対象外の文字がパラメータとして渡された場合、ミニアプリが起動してもパラメータを受け取ることはできません。
注記2:Androidデバイスでは、スペース、日本語、その他UTF-8などの文字はChrome WebViewによって自動でパーセントエンコードされます。プラットフォーム間の問題を避けるため、パラメータにご使用の際は必ず手動でパーセントエンコードしてください (encodeURIComponent
を使用するなど) 。