WEBサイト制作・アプリ開発・システム開発・ブランディングデザイン制作に関するご相談はお気軽にご連絡ください。
構想段階からじっくりとヒアリングし、お客様の課題にあわせたアプローチ手法でお客様の“欲しかった”をカタチにしてご提案いたします。
Blog スタッフブログ
Android
PHP
システム開発
[Android][Kotlin][PHP]カスタムURLスキーム対応
システム開発担当のTFです。
※Android10対応(他バージョンの場合、細かい部分等が異なる事があります)
やり方(Android)
- AndroidManifest.xmlに、カスタムURLスキームから起動するActivityにintent-filterを設定する
- Webや、e-mailのリンクから、カスタムURLスキームでアプリを起動する
- 対象Activityで、カスタムURLスキーム起動時のパラメータ等受け取る
やり方(PHP)
- 通常のWeb上のリンクは、「カスタムURLスキーム://」で起動可能
- e-mail、リダイレクトは、「カスタムURLスキーム://」が効かないため、インテントベースのディープリンク対応(Androidの場合)
参考
アプリ コンテンツ用のディープリンクを作成する
【Android】はじめてのカスタムURLスキーム
Webページからアプリを起動しよう
E メールからアプリケーションを開くためのディープリンクの使用
サンプル
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
<application
>
<activity
android:name=".TestActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<!-- カスタムURLスキーム設定 -->
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.BROWSABLE"/>
<category android:name="android.intent.category.DEFAULT"/>
<data android:scheme="testapp"/>
</intent-filter>
</activity>
</application>
</manifest>
// カスタムURLスキーム起動判定
var uri: Uri? = intent.data;
if( uri != null ) {
// カスタムURLスキームから起動した
// パラメータの取得等
val url = uri.getQueryParameter("url")
}
<?php
$url = "https://test.test";
// 通常リンク
print( '<a href="testapp://?url='.$url.'">' );
// e-mailや、リダイレクトのインテントベースのディープリンク(Androidの場合)
$redirect_url = "intent://?url=". urlencode($url) ."#Intent;scheme=testapp;package=アプリのパッケージ名;end;";
header("Location: ". $redirect_url);
?>