2017-02-05 10 views
-1

こんにちは私はwebviewアンドロイドアプリを持っています。誰かが私のアプリを開くとき。私のウェブサイトはwebviewアプリケーションとしてアプリケーション内で開きます。しかし、私は自分のブラウザで私のウェブサイトのURLを呼び出すときにアプリ内でURLを開くしたい。私のウェブサイトを自分のアンドロイドアプリ内で開く方法

など。私がwww.fb.com/somepageを呼び出すと、facebookは私の電話の中で自分のアプリケーションを直接開きます。私はブラウザ上でページを訪問しません。私はこれをやろうとします。私はどうしますか?

私は想像してみれば、私はそれに関する有益な記事を見つけることができませんでした。私はアンドロイドのサポートされているURLまたはサポートされているウェブページを検索しました。私は多くのものを見つけました。彼らは多くのコードを書いた。私は私のウェブサイトのURLをキャッチするためのコードがたくさん必要だと思います。私は正しい?

私はすでにwebviewアプリケーションを使用しています。もし私がマニフェストまたは私のmainactivityファイルの何かの変更のような簡単なやり方をすれば。私はこのようにしたい。

が必要とされていること、あなたが URLスキームにリンクしたいあなた ビューアクションの intent-filterあるヘルプ

+0

使用クロームカスタムタブhttps://labs.ribot.co.uk/exploring-chrome-customs-tabs-on-android-ef427effe2f4#.p88eugs3lこれはあなたの –

+0

を助けるディープリンクのあなたの考えていますか? https://developer.android.com/training/app-indexing/deep-linking.html –

答えて

0

いただきありがとうございます。

マニフェストXMLファイル内...ビューインテントは、BROWSABLEカテゴリがWeb URIに応答している間のアクションを表します。スキーム

<activity android:name=".MainActivity> 
    <intent-filter> 
     <action android:name="android.intent.action.VIEW" /> 
     <category android:name="android.intent.category.DEFAULT" /> 
     <category android:name="android.intent.category.BROWSABLE" /> 
     <data android:scheme="http" 
     android:host="your-website.com" 
     android:path="/somepage/" /> 
    </intent-filter> 
</activity> 

の定義

ただし、ユーザーがあなたのアプリケーションがすでにインストールされている必要がありますか、他のS /彼は、ブラウザにエラーメッセージが表示されます。あなたは無条件にフォールバックが必要です。エラーの問題を処理する1つの方法は、ユーザーがアプリケーションをインストールしているかどうかを確認するためにJavascriptのチェックを使用することです(AngularJSのようなJavascriptを使用している場合はonclickにバインドできます。 Javascriptまたはなし)。アプリがインストールされていない場合、ユーザーは通常のウェブサイトのURLに移動します。それ以外の場合、彼はappにジャンプします。

アプリがあなたのウェブサイトのファイルまたはテンプレート・ファイル内の

をインストールしていないユーザーのため

取り扱いリダイレクト、Javascriptを

<script> 
    //any conditional logic 
    if(navigator.userAgent.match(/android/i)) { 
    // redirect to App 
    } else { 
    // stay/redirect to website or something like getting them to install the app 
    } 
</script> 

<a href="http://yourweb.com/somepage/">Your Text </a>をユーザーがクリックすると、S /使用彼はアプリに行きますが、アプリがインストールされていない場合は、ブラウザまたはPlayストアのページにアクセスします(下記の注を参照)。

その他のオプション

another way of doing all of the aboveがあります。 httpスキームを定義する代わりに、独自のカスタムURIを持つことができます。

<intent-filter> 
    <data android:scheme="your-custom-URI" /> 

</intent-filter> 

あなたのウェブテンプレートファイルには、リダイレクトフォールバックのための何らかの条件があります。

<a href="your-custom-URI://somepage">Your Text</a> 

エクストラノート

  • あなたの注意は、いくつかのブラウザの仕様に関する必要があるだろう何か。ここにどのようにGoogle Chromeのtreats the subjectです。

  • Playストアでアプリをお持ちの場合は、market://details?id=com.your.app.packageにアクセスしてダウンロードしてください。

  • あなたのウェブサイトには、 AngularJS、VueなどのいくつかのJavascriptライブラリでそれ以上のことを達成できます。

+0

詳細については、[インテントとインテントフィルタ](https://developer.android.com/guide/components/intents)を参照してください。 -filters.html) – Gonzoarte

関連する問題