3

つい最近、iOS 5.1 で # または * 文字を含む tel: URI を使用して [[UIApplication sharedApplication] openURL:url] を呼び出すことが許可されていることに気付きました。

例 NSURL *url = [NSURL URLWithString:@"tel:15555551212,,1234#"];

ドキュメントは、これが現在許可されていることを示すために更新されていないようです。iOS 4.x ではまだ動作しません。これがいつ変更されるかをテストしています。Apple がアプリからこれらの文字をダイヤルするポリシーを正式に変更したかどうか知っている人はいますか?

4

2 に答える 2

4

この変更は、またはの後に#とを許可するように見えます。つまり、通話が接続された後に DTMF を送信します。数秒待ってから、「123 にダイヤル」ボタンなどを使用して送信するタイミングをユーザーが決定できるようにします。サービス/USSD/etc コードとして解釈されないことを考えると、通話で DTMF を送信することは安全であると考えられます。*,;,;

オペレーターによっては悪意のある目的で使用する可能性はまだありますが、これはユーザーがペイロードを終了する前に通話を終了しないことに依存しています (たとえば、正しい番号を知っていればボイスメールを削除できます)。

于 2012-10-02T17:59:05.910 に答える
0

tc によって記述された変更。本当に起こった。同時に、DTMF tel の末尾を '+' で制限し、DTMF の誤動作を引き起こしているため
、tel://1234567,12345+ のような URL は iPhone 5 では機能しませんが、iPhone4(s) でも機能しますios6 で動作する
tel url コード:

NSString * baseTel = @"12345";
NSString * ext = @"54321";
NSString * telStr = [NSString StringWithFormat:@"tel://%@,%@#",$baseTel,$ext];
NSURL * theUrl = [NSURL URLWithString:[telStr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];

これは 12345 にコールし、回線が応答した後に DTMF 54321# を再生します。

于 2013-04-19T15:00:13.297 に答える