2016-07-23 2 views
0

SwiftアプリにNearby APIを設定していて、アプリがフォアグラウンドにあるときにメッセージを受け取ることができます。私は適切な場所にparams.allowInBackground = trueを含めるしようが、私はエラーを取得instructions in the docs 次のとおりです。Google iOSのバックグラウンドスキャンでの近くのAPI

Value of type 'GNSBeaconStrategyParams' has no member 'allowInBackground' 

だから、私はそれを行うことはできませんし、私のGNSSubscriptionオブジェクトは、次のようになります。

subscription = messageManager.subscriptionWithMessageFoundHandler(
     messageFoundHandler, messageLostHandler: messageLostHandler, 
     paramsBlock: { (params: GNSSubscriptionParams!) in 
      params.deviceTypesToDiscover = .BLEBeacon 
      params.permissionRequestHandler = { (permissionHandler: GNSPermissionHandler!) in 
       // TODO: Show custom dialog here, and call permissionHandler after it is dismissed 
       // show the dialogue 
      } 
      params.beaconStrategy = GNSBeaconStrategy(paramsBlock: { (params: GNSBeaconStrategyParams!) in 
        params.includeIBeacons = true 
        //params.allowInBackground = true //*** THIS DOESN'T WORK *** 
       }) 
    }) 

マイmessageHandlers

この設定と範囲内のエッジストーンビーコンを使用すると、バックグラウンドで通知が表示されます。これが私が欲しいものなので、私は幸せになるはずです。私はこのようなメッセージの流れを見始めるバックグラウンドでアプリをXcodeのために接続されたデバイスを残す場合は、(およそ5秒ごとのようです):

2016-07-23 19:35:08.243 Hoc[1269:622746] Can't endBackgroundTask: no background task exists with identifier 2f3, or it may have already been ended. Break in UIApplicationEndBackgroundTaskError() to debug. 

私は、v0.10.0を使用しています近くのメッセージの誰かが正しい方向に私を向けることができれば、iOS上でバックグラウンドスキャンが確実にうまくいくようになるでしょう。

答えて

2

これはCocoapodsの問題が原因でした。 $ pod updateなどのアプローチを使ってNearbyMessagesのcocoaPodをプロジェクトから削除/再追加したにもかかわらず、何らかの理由で、Nearby SDKの最新バージョン(1.0.1)をインストールできませんでした。解決策は、Githubから手動で仕様をダウンロードし、~/.cocoapods/repos/masterのファイルを上書きすることでした。

次に、最新のバージョンがインストールされていることを確認するために、ポッドファイルを変更してpod 'NearbyMessages', '~> 1.0.1'を含むように変更しました。

これでGNSBeaconStrategyオブジェクトに適切なパラメータを設定でき、Eddystoneビーコンの背景スキャンはiOSのバックグラウンドで動作します。 :-)

私はこれが役に立ちそうです。

+0

James、あなたはもともとPodfileで何を持っていましたか? 'pod 'NearbyMessages'、 '〜> 0.10.0' 'を持っていれば、バックグラウンドをサポートする最新のCocoaPodを入手することはできません。 'pod 'NearbyMessages'、 '〜> 1.0.1''を使うことで、1.0バージョンへのバグ修正のアップデートを得ることができますが、それが出てくるとバージョン1.1を得ることはできません。 –

+0

ありがとう@DanWebb私はもともと、バージョン番号なしで 'pod 'NearbyMessages''しか持っていませんでした。更新を得るために変更しますが、私のcocoapod/git setupで変なことが起こっているので、とにかくそれらを取得しないかもしれません。ありがとう – James

関連する問題