2013-09-06 16 views
5

私はWebアプリケーションを持っています。そして、Android上に私のアプリケーションをホームスクリーンに追加する方法を説明する警告を表示したいと思います。 (ブックマークに追加してから「ホーム画面に追加する」または「ホームにショートカットに追加する」)。その後、アプリを開くためのアイコンが画面に表示されます。Androidのホーム画面にWebアプリケーションが追加されていないか確認してください。

もちろん、私はアプリがホーム画面に追加されていない場合にのみ、これを表示したいと思う。

誰でもこの方法を知っていますか? すべての入力がありがとう、ありがとう。

+0

このリンクはあなたにとって興味深いかもしれません:https://github.com/w3c/manifest/issues/417。 – Marco

答えて

-1

最初にあなたは、あなたが今、あなたはそれらを介して、あなたのデバイスにインストールされているパッケージのリスト、 反復を持っていることgetLaunchIntentForPackage()

を使用するデバイス

List<ApplicationInfo> packs = pm.getInstalledApplications(0); 

でアプリのリストを取得各 アイテムでgetLaunchIntentForPackage()を呼び出します。

有効なインテントが返された場合はランチャーに存在し、そうでない場合はnull が返されます。パッケージはランチャー画面から起動しません。 ホーム画面のショートカットは、ランチャーアプリのサブセットであることに注意してください。

+0

ありがとう、Ahmed。 pm.getInstalledApplications(0)を取得することを約束しますか?私のウェブアプリから?それはネイティブJavaまたはのように見えますか? –

+0

私はそれを行う方法がわかりません –

+0

あなたはウェブページでこれを行うことはできません。 – Marco

2

短い答えは:ウェブサイトからはできません。

これ以上の答えは次のとおりです。ウェブサイトからは、Chromeでヒントを得ることができます。

home screen and how it should look on the homescreenから起動すべきかを説明し、そして2)Chromeは今、我々はアプリのようであり、ことができると思うWebアプリケーションのためのトリガーとなるbeforeinstallpromptイベントを持っているのAndroid版Chromeの2つの新機能1)Web App Manifestホーム画面にインストールされます。

onbeforeinstallpromptイベントは「ok」ヒューリスティックになる可能性があるため、多くの基準があります(私はそうは思わないが)。

イベントのみ火災場合:サイトがマニフェストを持っている

  • 、HTTPS上で、サービス労働者を持っています。 (これはかなり伸びることがあります)。
  • ユーザーがサイトに複数回参加しています(現在、少なくとも5分以内に2回)。
  • ユーザーはホーム画面に自分のサイトを追加していません。

したがって、要約すると、それは複雑であり、偽陽性および偽陰性でいっぱいです。しかし、あなたが望むのは、バナーを表示してウェブアプリをホーム画面に追加するように促すメッセージが表示された場合、Chromeには既に解決策があります。

samples on our samples siteもあります。

2

はい、できます。

技術的には、Chromeブラウザタブで開いているページでホーム画面のショートカットが存在するかどうかを直接確認することはできませんが、ホーム画面のインスタンスとブラウザのタブではページのローカルデータ(localStorage、IndexedDB)を共有するため、ホームスクリーン版の存在を伝える。

  1. アプリはホーム画面
  2. から実行されている場合、それは、ホーム画面から走ったならlocalStorage
  3. 利益にこの事実を保存し、検出! (任意のタブでlocalStorageからこれを読むことによって)

アプリは(ホーム画面から起動した場合にのみ可能です)、スタンドアロンのビューである、CSSメディアクエリ(display-mode: standalone)が一致します。 JavaScriptでは、あなたが使用してそれを読むことができます:

matchMedia('(display-mode: standalone)').matches 

(ところで:これの非標準のiOS相当navigator.standaloneですが、iOSのホーム画面とSafariの間で状態を共有していないので、あなたが運の外出します)。

カスタム手順の代わりに、「プログレッシブウェブアプリ」のChromeの基準を満たし、Chromeにプロンプ​​トを表示させることをおすすめします。

0

私はあなたがそれを行うことができると思います。マニフェストのstart_urlにクエリ文字列を追加するだけで、start urlにそのクエリ文字列がある場合はjavascriptチェックに追加するだけです。クエリ文字列が見つかると、アプリがインストールされます。

関連する問題