it-swarm.com.de

Link teilen mit WhatsApp

Ich habe diesen Code für das Teilen von App-Links in der App verwendet, aber im Textfeld von WhatsApp ist nichts enthalten. Wenn Sie einfachen Text verwenden, dann funktioniert es. Kann jemand das endgültige Ergebnis vorschlagen.

NSString *theTempMessage = @"whatsapp://send?text=https://iTunes.Apple.com/in/app/myapp/id1054375332?ls=1&mt=8";
NSString *theFinalMessage;

theTempMessage = [theTempMessage stringByReplacingOccurrencesOfString:@":" withString:@"%3A"];
theTempMessage = [theTempMessage stringByReplacingOccurrencesOfString:@"/" withString:@"%2F"];
theTempMessage = [theTempMessage stringByReplacingOccurrencesOfString:@"?" withString:@"%3F"];
theTempMessage = [theTempMessage stringByReplacingOccurrencesOfString:@"," withString:@"%2C"];
theTempMessage = [theTempMessage stringByReplacingOccurrencesOfString:@"=" withString:@"%3D"];
theFinalMessage = [theTempMessage stringByReplacingOccurrencesOfString:@"&" withString:@"%26"];

NSString * stringToSend=theFinalMessage;
NSURL *whatsappURL = [NSURL URLWithString:stringToSend];

if ([[UIApplication sharedApplication] canOpenURL: whatsappURL])

{
    [[UIApplication sharedApplication] openURL: whatsappURL];
}
17

Der folgende Fehler wird angezeigt, wenn canOpenURL geprüft wird.

fehler bei URL: "WhatsApp: //" - Fehler: Diese App darf nicht nach Schema WhatsApp abfragen

In iOS 9 müssen Sie alle URL-Schemata, die Ihre App in Info.plist unter dem Schlüssel LSApplicationQueriesSchemes (ein Array von Zeichenfolgen) abfragen möchte, in die Whitelist aufnehmen:

enter image description here

Mit den in Info.plist enthaltenen Schemata funktioniert alles wie zuvor. Wenn Sie eine Verknüpfung mit iOS 9 herstellen, sind Sie nicht auf 50 verschiedene Schemata beschränkt. Sie müssen lediglich angeben, was Sie in Info.plist benötigen. Es scheint keine Begrenzung für die Anzahl der Schemas zu geben, die Sie einschließen können, aber ich würde Fragen vom App Store-Überprüfungsteam erwarten, wenn sie der Meinung sind, dass Sie den Mechanismus missbrauchen.

Beachten Sie, dass dieser Mechanismus nur für canOpenURL gilt und nicht für openURL . Sie brauchen kein Schema in Info.plist, um öffnen Sie es mit openURL.

NSString * msg = @"Application%20Name%20https://iTunes.Apple.com/in/app/myapp/id1054375332?ls=1&mt=8";

msg = [msg stringByReplacingOccurrencesOfString:@":" withString:@"%3A"];
msg = [msg stringByReplacingOccurrencesOfString:@"/" withString:@"%2F"];
msg = [msg stringByReplacingOccurrencesOfString:@"?" withString:@"%3F"];
msg = [msg stringByReplacingOccurrencesOfString:@"," withString:@"%2C"];
msg = [msg stringByReplacingOccurrencesOfString:@"=" withString:@"%3D"];
msg = [msg stringByReplacingOccurrencesOfString:@"&" withString:@"%26"];

NSString * urlWhats = [NSString stringWithFormat:@"whatsapp://send?text=%@",msg];
NSURL * whatsappURL = [NSURL URLWithString:urlWhats];

if ([[UIApplication sharedApplication] canOpenURL: whatsappURL]) {
    [[UIApplication sharedApplication] openURL: whatsappURL];
} else {
    UIAlertView * alert = [[UIAlertView alloc] initWithTitle:@"WhatsApp not installed." message:@"Your device has no WhatsApp installed." delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
    [alert show];
}

Dieses ist das offizielle Video der WWDC 2015 zur App-Sicherheit.

42
Nimit Parekh

Fügen Sie dies Ihrer Info.plist hinzu

<key>LSApplicationQueriesSchemes</key>
    <array>
        <string>whatsapp</string>
    </array>

Implementieren Sie diesen Code in den ViewController, wo Sie WhatsApp zur Freigabe öffnen müssen. (wie zum Beispiel eine Tastenaktion) Update für Swift 3-Version (Xcode 8.x): Aktualisiert für Verweise :

var str = "This is the string which you want to share to WhatsApp"
str=str.addingPercentEncoding(withAllowedCharacters: (NSCharacterSet.urlQueryAllowed))!
let whatsappURL = URL(string: "whatsapp://send?text=\(str)")
if UIApplication.shared.canOpenURL(whatsappURL) {
   UIApplication.shared.open(whatsappURL!, options: [:], completionHandler: nil)
} else {
   showAlert(message: "Whatsapp is not installed on this device. Please install Whatsapp and try again.")
}

Hier ist showAlert () eine benutzerdefinierte Funktion zum Anzeigen einer Warnung.

7

Wenn Sie " [[UIApplication sharedApplication] openURL: whatsappURL]; " nach der Zeichenfolgenreplikation verwenden, wird der Safari-Browser nicht der WhatsApp geöffnet.

Wenn Sie WhatsApp öffnen möchten, ersetzen Sie die Zeichenfolge nicht

1
satheesh