diff --git a/public/client-metadata.json b/public/.well-known/client-metadata.json similarity index 88% rename from public/client-metadata.json rename to public/.well-known/client-metadata.json index 2b8e788..1d3a78e 100644 --- a/public/client-metadata.json +++ b/public/.well-known/client-metadata.json @@ -1,5 +1,5 @@ { - "client_id": "https://card.syui.ai/client-metadata.json", + "client_id": "https://card.syui.ai/.well-known/client-metadata.json", "client_name": "Aicard", "client_uri": "https://card.syui.ai", "logo_uri": "https://card.syui.ai/icon.png", diff --git a/public/oauth/callback/index.html b/public/oauth/callback/index.html index 845f82c..56b21b9 100644 --- a/public/oauth/callback/index.html +++ b/public/oauth/callback/index.html @@ -59,6 +59,9 @@ const error = params.get('error'); const errorDescription = params.get('error_description'); + console.log('OAuth callback page loaded'); + console.log('Params:', { code: code ? 'present' : 'missing', state: state ? 'present' : 'missing' }); + // エラーチェック if (error) { document.getElementById('status').innerHTML = @@ -75,20 +78,40 @@ // React Nativeアプリに戻す (deep link) const deepLink = `aicard://oauth/callback?code=${encodeURIComponent(code)}&state=${encodeURIComponent(state)}`; - document.getElementById('status').textContent = 'アプリに戻っています...'; + console.log('Deep link:', deepLink); + document.getElementById('status').innerHTML = 'アプリに戻っています...
' + deepLink + ''; - // Deep linkを開く - window.location.href = deepLink; + // Method 1: iframe approach + const iframe = document.createElement('iframe'); + iframe.style.display = 'none'; + iframe.src = deepLink; + document.body.appendChild(iframe); - // フォールバック: 3秒後にも試行 + // Method 2: Direct window.location setTimeout(() => { + console.log('Attempting window.location redirect'); window.location.href = deepLink; + }, 500); + + // Method 3: Link click simulation + setTimeout(() => { + console.log('Attempting link click'); + const link = document.createElement('a'); + link.href = deepLink; + link.click(); }, 1000); + // Method 4: Window.open + setTimeout(() => { + console.log('Attempting window.open'); + window.open(deepLink, '_self'); + }, 1500); + // フォールバック: 5秒後にメッセージ表示 setTimeout(() => { document.getElementById('status').innerHTML = - '
アプリが開かない場合は、Aicardアプリを手動で開いてください
'; + '
アプリが開かない場合は、下のリンクをタップしてください

' + + 'Aicardアプリを開く
'; }, 5000); } catch (err) {