アプリでURLスキームsmstest
を宣言したので、Safariでは検索バーsmstest:my-test
またはsmstest://my-test
に書き込むことができ、アプリが開いています。
メッセージアプリがリンクとしてsmstest:my-test
またはsmstest://my-test
をフォーマットし、ユーザーがそれと私のアプリをタップできるように、SMSテキストから同じことを達成しようとしています。呼び出されますが、テキストはリンクとしてフォーマットされていません。
SMSからアプリを開くための唯一の解決策は、スクリプトでインターネットページを指すことです。
ありがとうございました。
編集:面白いことに、IMO Messengerをインストールしましたが、URLスキームとしてコードを含むSMSを受け取り、メッセージアプリによってリンクとして解析されます。アプリで発生しないのはなぜですか?URLの前後にスペースを入れて、いくつかのメッセージを試しましたが、何も起こりません。
一般に、URLスキームを使用してメッセージアプリからアプリケーションを開く標準的な方法があります。
そして、すべてがうまく機能します。 しかしそれが機能せず、ソースコードが間違っていると思う場合、1つの興味深いケースが考えられます。しかし、そうではありません。このケースを調査してみましょう:
URLスキームを追加してアプリケーションをインストールする前に、SMSを送信してください。予想どおり、メッセージはプレーンテキストとして表示されます。
次に、URLスキームをinfo.plistに追加しましょう。
最後にアプリケーションをインストールし、同じSMSを送受信します。
ご覧のとおり、最後のメッセージはリンクのように表示され、それをタップするとiOSがアプリケーションを開きます。 しかし最初のメッセージはプレーンテキストとして表示されたままであり、タップすることはできません。メッセージアプリのロジックはそのように実装されているようです。
次に、iPhoneからアプリケーションを削除し、同じSMSをもう一度送信します。
これで再びプレーンテキストとして表示されますが、2番目のメッセージはリンクとして表示されます。そして、それをタップすると、iOSは何もせず、メッセージアプリを開いたままにします。
結論:スキームをサポートするアプリケーションをインストールした後、必ず送信/受信SMS)してください。この場合のみ、リンクとして表示され、ユーザーはアプリケーションを開くことができます。それをタップすることによって。
注意:最初にアプリケーションがサポートされているURLスキームなしでインストールされ、次にこのサポートメッセージがプレーンテキストとして表示されたが、リンクとして表示されなかった場合も1つあります。再現できません。ただし、上記の手順で問題を解決できない場合は、次の手順を試してください。
編集:
SMS本体にURLスキームを送信するアプリを試してみて、動作しました。この形式である必要がありますsmstest://my-test
SMSを受信したら、アプリをインストールし、info.plistでURLスキームを宣言する必要があります。
さまざまなURLスキームで受信したSMSのスクリーンショットを追加します。これらはすべて、iPhoneで認識されますSMS app
それでも機能しない場合は、実装してYES
を返すようにしてください
application: handleOpenURL:
およびapplication: openURL:sourceApplication: annotation:
- (BOOL)application:(UIApplication*)application handleOpenURL:(NSURL*)url
{
return YES;
}
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
return YES;
}
この古い答えは、コメントで要求したJSリダイレクトに対するものでした。
アプリがインストールされていない場合にiTunesのURLにフォールバックしてWebからアプリにリダイレクトするためにこれを使用します
var now = new Date().valueOf();
setTimeout(function () {
if (new Date().valueOf() - now > 100) return;
window.location = "http://iTunes.Apple.com/yourappurl";
}, 25);
window.location = "smstest://my-test";