2015-01-06 13 views
20

Apple Watchでユーザーに通知する方法はありますか?iPhoneは現在範囲外です。時計の延長ではどうすればいいのですか?iPhoneとリンゴの時計が接続されているかどうかを確認する方法

ありがとうございます。

+0

今のところ、電話が届かないことを知らせる通知やデリゲートはありません。ちょっと考えました:おそらく、あなたは[openParentApplication](https://developer.apple.com/library/prerelease/ios/documentation/WatchKit/Reference/WKInterfaceController_class/index.html#//apple_ref/occ/clm/WKInterfaceController/)を使うことができます。 openParentApplication:reply :)あなたがiPhoneにpingできるかどうか確認してください。ちょうど鋭敏な、それを試していない。 – GoodSp33d

答えて

0

現在の知識の点からは、これはおそらく不可能です。シーンを選択した後、Appleのから

WatchKit App Architecture

、WatchKitは あなたWatchKit拡張を起動し、その シーンを管理するために必要なオブジェクトを作成するために、ペアのiPhoneを伝えます。シーンが完全に設定されると、Apple ウォッチに表示されます。 WatchKitアプリと WatchKit拡張の間の情報の転送は、舞台裏で透過的に行われます。

つまり、コードはiPhoneで実行されます。 iPhoneが手の届かないところにいると、時計でアプリを実行することはできません。

+0

実際には、電話が届かないときにアラートビューを表示する必要があります。私は何らかの方法があるはずだと思います。 –

+1

@MohitTotlaniいいえ、iPhoneが圏外になると、ウォッチアプリは電話なしでは実行できないので終了します! –

1

Appleは正式な見解から、これがどのように処理されるかについては何も示していません。

しかし、アプリの関与なしにOSが処理するペアリングと通信領域を考慮すると、時計(および電話機側)の接続に関するユーザへの通知は、Watch OS同じように。私の推測では、ユーザーには接続の喪失を解決する機会が与えられ、そうでない場合はWatchアプリを終了する機会が与えられます。開発者の観点から見ると、Googleのアプリでは、未解決の接続喪失と通常のアプリを終了するユーザーを区別することができない可能性が高く、同じ通知がWatch Extensionに送信されますが、これは単なる推測です。

現在のWatchアプリのウォッチには、UIのみが動作するサードパーティの開発者コードがないため、未解決の接続の切断でもデータが失われることはありません。ウォッチ拡張機能(iPhone上で動作する)が時計との接続が失われたためにOSによって終了された場合でも、通常のデータ保存とクリーンアップは可能です。

8

WatchOS 2で可能です!

まず:次に

import WatchConnectivity 

:私はそれはあなたがすべて見つけることができます:)

+1

iPhoneへの接続が突然切断されたときに起動する時計に通知がありますか? –

+0

もちろんです!その後、時計に赤いキャンセル電話が表示されます: – BilalReffas

+0

時計の拡張機能や時計キットのネイティブアプリ内でその通知をどのように監視できますか? –

-1

を助ける願ってい

if WCSession.isSupported() { // check if the device support to handle an Apple Watch 
     let session = WCSession.defaultSession() 
     session.delegate = self 
     session.activateSession() // activate the session 

     if session.paired { // Check if the iPhone is paired with the Apple Watch 
       // Do stuff 
     } 
    } 

あなたはiPhone側で行う必要があります接続状態変更通知はWCSession documentationにあります。

5

watchOS 2.0を使用することができます。あなたは、通知を得るためにあなたのAppleウォッチを望んでいた場合は、これを行うには、あなたのExtensionDelegateにこれらを追加します。あなたはまた、あなたのExtensionDelegateにWCSessionDelegateを追加する必要があります

func watchKitSetup() {  
    if (WCSession.isSupported()) { 
     let session = WCSession.defaultSession() 
     session.delegate = self 
     session.activateSession() 

     // In your WatchKit extension, the value of this property is true when the paired iPhone is reachable via Bluetooth. 
     // On iOS, the value is true when the paired Apple Watch is reachable via Bluetooth and the associated Watch app is running in the foreground. 
     // In all other cases, the value is false. 
     if session.reachable { 

     } 
    } 
} 

func applicationDidFinishLaunching() { 
    self.watchKitSetup() 
} 

// Called when session.reachable value changes, such as when a user wearing an Apple Watch gets out of range of their iPhone. 
func sessionReachabilityDidChange(session: WCSession) { 
    if session.reachable { 

    } 
} 

関連する問題