Phonegapを使用してAndroidアプリで作業してきましたが、アプリを閉じてもアプリでJava/jsコードを実行できるようにしたいと考えています。 phonegapでサービスプラグインを作成する場合、javascriptコードまたはjavaのみを実行できますか?
誰かがこのようなことをしていますか?私はこの議論を見つけましたが、うまくいかないようでした: http://groups.google.com/group/phonegap/browse_thread/thread/722b0e796baa7fc6 それで私が今持っているすべてです。
私がそれを理解することができない場合、ネイティブに開発する前に、誰かがこれをやったことがあるかどうかを尋ねると思いました。同様のことをするphonegapプラグインを見つけることができないようです。
編集:私はJavaサービスとしてコードを実行するアプリを持っています。しかし、sendjavascriptを呼び出すと動作しません。それでバックグラウンドでjavascriptコードを実行する方法もありますアプリがphonegapで閉じられたとき
ありがとう
いいえ、バックグラウンドで(少なくとも私の意見では)Javascriptコードをサービスとして実行することはできません。 Phonegap on Android=は、WebViewをホストする Droidgap という特別なアクティビティを使用します。このブラウザコントロールはJavaScriptを実行します。つまり、JS実行はこのアクティビティ内でのみ処理できます。それが見えるかどうかに関係なく。
Googleグループからリンクしたコードは、Javaで開発されたサービスをDroidGapアクティビティにバインドしようとするため、サービスはJSで記述されていません。
DroidGapアクティビティから派生した子アクティビティ内のJSコード内に、バックグラウンドアクティビティを含めることができます。たとえば、アクティビティにバックグラウンドスレッドがあり、JSコールバック関数があり、スレッドがこのコールバック機能を呼び出すようにします。
サービスが本当に必要な場合は、ネイティブにする必要があります。
更新:
JSコードは、Droidgapアクティビティでのみ実行できます。アクティビティには3つの状態があります( アクティビティのライフサイクル に基づく):
Phonegapプラグインを実装する sample を提供しました。プラグインにより、アクティビティは自身をSMS_RECEIVEDに登録できます。アクティビティがスコープ外になると(イベントonbeforeunload)、登録が解除されるため、問題1のみが処理されます。
3つの問題すべてを処理する場合は、着信SMS意図をアクティビティに転送する必要があります。ロードされない場合、システムはアクティビティを自動的にロードしてアクティブにします。しかし、これはバックグラウンドではありませんサービスは、SMSが受信されるたびにアプリが表示されるようになります。
これが必要ない場合(本当にバックグラウンドサービスが必要な場合)、ネイティブ実装を提供する必要があります。
この記事 Phonegapを使用してAndroidにサービスを作成する方法に関する問題があります。
Phonegapを使用してバックグラウンドサービスを簡単に構築するために、優れたプラグインを使用しています。ただし、JSは使用できません
JSをバックグラウンドで実行する方法を見つけられませんでした。ただし、プラグインを使用してJavaからJSにパラメーターを渡すことができます。これは非常に便利です。ただし、JavaのJSコードを書き換える必要があります。 JSのみを実行する特定の理由がない限り、 (しかし、あってはならない...)
このページにアクセスする一部の人々に役立つことを願っています。
はい、それは非常に簡単です...プラグインbackgroundJSをインストールするだけです:
https://build.phonegap.com/plugins/4
バックグラウンドでjavascriptを実行し、ローカル通知プラグインと組み合わせて、いつでもユーザーに通知を送信することもできます。これを行うと、バッテリーが速く消耗することに注意してください。 iOSポリシーに問題を作成します。幸運を!!!
追加しようとすることができますplugincordova-plugin-background-mode
しかし、著者が言うように:
無限のバックグラウンドタスクは、ほとんどのモバイルオペレーティングシステムで公式にサポートされていないため、パブリックストアベンダーに準拠していません。成功したサブミッションは保証されません。自己責任でプラグインを使用してください!