私のアプリからmapItemでNSUserActivityを実装する際に問題があります。NSUserActivityが正しく動作しない
フォースクエアはないように私が欲しいのは、アプリスイッチャーに提案「行き方」を使用することができることです。
私は、私のviewDidLoad
方法に次のコードを使用しています登録したい場所(パブ)を表示するView Controller。
NSUserActivity *activity = [[NSUserActivity alloc] initWithActivityType:@"co.pubmapper.ViewPub"];
CLLocationCoordinate2D coords = CLLocationCoordinate2DMake(self.pub.lat, self.pub.lng);
MKPlacemark *placemark = [[MKPlacemark alloc] initWithCoordinate:coords];
MKMapItem *mapItem = [[MKMapItem alloc] initWithPlacemark:placemark];
[mapItem setName:self.pub.name];
activity.mapItem = mapItem;
// not sure any of these are necessary for my use case
[activity setEligibleForSearch:YES];
[activity setEligibleForHandoff:YES];
[activity setEligibleForPublicIndexing:YES];
[activity becomeCurrent];
これは私がコンソールに以下を参照してください動作します。私のactivity
アイテムが何らかの理由ですぐに無効にされている示唆
[main] sendUserActivityToServer, called on activity C626E4B1-ADF8-49D8-80FB-C773DB71243D after it had been invalidated, so doing nothing.
。私はexpirationDate
を設定するために以下を追加しましたが、コンソールには同じメッセージが表示されます。
activity.expirationDate = [NSDate distantFuture];
私の知る限り、私はこれが私のアプリを起動するだけで、厳密には必要だと思うが、私は、私もNSUserActivityTypes
に私の活動の種類を追加しましたここのドキュメント内のすべてhttps://developer.apple.com/reference/foundation/nsuseractivity?language=objc
を追ってきた言うことができるように私は現在懸念しているものではない活動オブジェクトを受け取っています。
解決しよう:これはmapItem
タイプに適用されますが、ドキュメントが言及している場合、私はわからない
@property (strong) NSUserActivity *activity;
...
[_activity becomeCurrent];
ビンゴ!どうもありがとう。私はある時点でそれを読んでいたが、恐らくSpotlightの完全な検索結果にのみ関連するものとして却下した。実際にはこのユースケースにも必要であるようです。乾杯! –
恐ろしい!聞いてうれしい。 – raidfive