web-dev-qa-db-ja.com

iOS9:WhatAppのURLスキームに対してcanOpenURLがfalseを返す

私の現在のプロジェクトでは、iOSアプリからwhatsappでテキストを共有する必要があります。

これがwhatsappでテキストを共有するための私のコードです:

NSURL *whatsappURL = [NSURL URLWithString:@"whatsapp://send?text=Hello%2C%20World!"];
if ([[UIApplication sharedApplication] canOpenURL: whatsappURL]) {
    [[UIApplication sharedApplication] openURL: whatsappURL];
}

しかしcanOpenURL iOS9では常にfalseを返します。

IOS9のプライバシーポリシーはありますか?誰かが私を助けることができますか?

13
Mayank Jain

IOS 9では、アプリがInfo.plistのLSApplicationQueriesSchemesキー(文字列の配列)の下でクエリするURLスキームをホワイトリストに登録する必要があります。

例えば:

enter image description here

したがって、あなたの場合、fbTwitterの代わりに、whatsappを指定する必要があります。

このメカニズムはcanOpenURLにのみ適用され、openURLには適用されないことに注意してください。 openURLで開くことができるようにするために、Info.plistにリストされているスキームを持っている必要はありません。お役に立てば幸いです。

49
z22

@ z22の回答に加えて、テキストで追加する必要がある場合(Xamarinなど)は次のようになります。

    <dict>
        ... 

        <key>LSApplicationQueriesSchemes</key>
        <array>
            <string>whatsapp</string>
        </array>
    </dict>
3
noelicus

私にとって問題は、LSApplicationQueriesSchemesの代わりにURLタイプを使用していたためでした。

そしてそれはLSApplicationQueriesSchemesに対してのみ機能します

これは機能しません

URL types

これは動作します

LSApplicationQueriesSchemes

0
Musa almatri

ステップ:1Info.plistにLSApplicationQueriesSchemesを追加します

ステップ:2アイテムにwhatsappを追加する

0