6

VoIP アプリケーション内に CallKit サポートを実装しています。

in に設定supportsVideoすることで、ビデオボタンを無効にすることができました。これで FaceTime ボタンが表示されました。falseCXProviderConfiguration

アプリは FaceTime とは関係のない社内の企業番号を処理しているため、デフォルトの UI で FaceTime ボタンを無効にする方法があるかどうかを知りたいと思いました。


更新: 以下の回答に記載されているように、ボタンを無効にすることは可能ですが、発信者番号は失われます ( として表示Unknown)。番号を保持し、FaceTime ボタンを無効にしたい。


更新: iPhone の設定で FaceTime を無効にすると、FaceTime ボタンが無効になります。ただし、これは問題の有効な解決策ではありません。


更新:CXHandle電話番号に無効な文字を挿入するなど、タイプを変更しても問題には影響しません。FaceTime ボタンは引き続き表示されます。

4

4 に答える 4

5

良いニュースと悪いニュースの関係で、FaceTime ボタンをクリアすることで無効にすることができましたremoteHandle(削除または非表示にするのではなく、グレー表示するだけです)。

ただし、副作用としてlocalizedCallerNameCXCallUpdate.
ハンドルのない通話には、Recents で押すことができないという副作用があります。

CXCallUpdate *callUpdate = [[CXCallUpdate alloc] init];
//callUpdate.remoteHandle = [[CXHandle alloc] initWithType:CXHandleTypeGeneric value:handle];
[self.provider reportNewIncomingCallWithUUID:uuid update:callUpdate completion:^(NSError* error) {}];
于 2016-12-20T21:59:51.093 に答える
1

「通話の追加」ボタンを無効にするのと同じアプローチに従ってFaceTimeボタンを無効にしましたが、これは発信者名の機能を壊しませんが、ユーザーがスピーカーボタンに触れると奇妙なことにFaceTimeボタンが再びアクティブになります。なぜこの動作が Apple のバグではないのかわからないので、適切な修正を断念しました。

編集:理由は次のとおりです。通話が確立されCXHandleたときにのみ a に帰してCXCallUpdateいたので、最初は がなかったため、FaceTime ボタンが無効になりましたCXHandle。スピーカー ボタンを有効にすると、何らかの形で CallKit UI の更新が強制されました。この時点で、CXHandleすでに が存在するため、FaceTime ボタンが有効になります。

于 2017-01-09T01:42:04.857 に答える
0

@Eli Burkeが言うように、remoteHandleをクリアすることでFaceTimeボタンを実際に無効にすることができますが、副作用はRecentsからの呼び出しを無効にします。どうしてか分かりません。

于 2016-12-23T08:52:52.870 に答える