Ich versuche, WeChat Funktionen für mein Projekt freizugeben. Die SDK-Dateien , Dokumentation , Entwicklungsleitfäden , und Beispielprojekt befinden sich alle in Objective-C. Ich schreibe mein Projekt in Swift.
Ich habe die folgenden SDK-Dateien zu meinem Projekt hinzugefügt
%Vor%Ich habe versucht, den Ratschlägen auf diese Antwort zu folgen, um einen Bridging-Header zu verwenden.
MeinProjekt-Bridging-Header.h
%Vor%Ich kann jedoch immer noch nicht die WeChat-API in meinem Code verwenden. Ich erhalte folgende Fehler:
WXApiObject.h
%Vor%WXApi.h
%Vor%Und
%Vor%Hat jemand erfolgreich die WeChat-API mit einem Swift-Projekt verwendet? Ich würde gerne eine kurze Liste von Schritten oder einen Beispielcode sehen. Es macht mir nichts aus, wenn irgendwelche ergänzenden Links zu chinesischen Ressourcen sind.
Siehe @ chensams Antwort für neuere Aktualisierungen dieses Prozesses.
Die offizielle deutsche Anleitung zu WeChat developer scheint veraltet und unvollständig zu sein. Die Chinesische Anweisungen sind besser, aber nur mit Objective-C. Die folgenden Schritte zeigen, wie Sie das WeChat (weixin 微 信) SDK zu Ihrem Projekt hinzufügen.
Die englische Seite ist dev.wechat.com . Ich konnte mich jedoch nie erfolgreich auf der englischen Seite registrieren. Ich benutzte die chinesische Seite: open.weixin.qq.com . Das geht über den Rahmen dieser Antwort hinaus, aber wenn Sie kein Chinesisch können, kann Google Übersetzer helfen. Beachten Sie, dass Sie wahrscheinlich auch eine Telefonnummer in China benötigen werden.
Nachdem Ihre App genehmigt wurde (Sie müssen nur Ihre App beschreiben, müssen Sie keinen Binär- oder Quellcode angeben), erhalten Sie eine App-ID, die Sie in Ihrem Code verwenden werden.
Sie können versuchen, das SDK von der englischen Seite zu verwenden, aber da die Dinge zur Zeit dieses Schreibens auf der chinesischen Seite aktueller zu sein scheinen, habe ich das SDK für diese Anweisungen heruntergeladen.
Ich habe das SDK von diese Seite und der Link für WeChat SDK Version 1.6.2 ist hier . Sie werden wahrscheinlich die aktuellste Version verwenden wollen, was auch immer das in der Zukunft sein mag.
Aus organisatorischen Gründen lege ich alle Dateien in derselben Gruppe in meinen Projektnavigator. (Die eigentlichen Dateien befinden sich immer noch im Stammordner des Projekts.)
Fehlerbehebung:
In SDK 1.6.2 erscheint das in der Frage beschriebene Problem und wird von @Anbu.Karthiks Antwort gelöst. Fügen Sie einfach #import <UIKit/UIKit.h>
zu WXApiObject.h
hinzu. (Sie können tatsächlich #import <Foundation/Foundation.h>
damit ersetzen.) Wenn Sie eine SDK-Version nach 1.6.2 verwenden, ist das möglicherweise kein Problem mehr. Daher sollten Sie nur die anderen Schritte ausführen, bevor Sie die SDK-Dateien ändern.
Beachten Sie, dass mehrere der SDK-Dateien Objective-C-Headerdateien (.h) sind. Um sie in Ihrem Swift-Projekt verwenden zu können, müssen Sie Ihrem Projekt eine Bridging-Header-Datei hinzufügen. Füge eine neue Datei hinzu (Datei & gt; Neu & gt; Datei ... & gt; iOS & gt; Quelle & gt; Kopfdatei) und nenne sie YourProjectName-Bridging-Header.h
.
Fügen Sie dieser Datei die folgende Zeile hinzu.
%Vor%In meinem Projekt ist dies die einzige Zeile in meiner Bridging-Header-Datei, da dies die einzige Zeile ist, die Sie für das WeChat SDK benötigen. (Es gab einige andere automatisch generierte Codezeilen, als ich die Header-Datei erstellt habe, aber ich habe sie einfach kommentiert, weil ich nicht wusste, was sie getan haben. Ich werde später zurückkommen und diese Antwort bearbeiten, wenn ich herausfinden sollte, dass sie nützlich sind. )
Siehe hier , hier , und hier für weitere Hilfe beim Hinzufügen eines Bridging-Headers.
Sie müssen jetzt keine der WeChat SDK-Dateien in Ihre Swift-Code-Dateien importieren.
Wechseln Sie zum Tab Allgemein Ihres Projekts und scrollen Sie nach unten zu Verknüpfte Frameworks und Bibliotheken . Klicken Sie auf das Pluszeichen (+), um die folgenden erforderlichen Frameworks und Bibliotheken hinzuzufügen.
Es sollte jetzt so aussehen:
Der CoreTelephony
wurde in der Readme-Datei und der libc++
in den Online-SDK-Installationsanweisungen erwähnt, aber nicht umgekehrt. Ich habe sie beide hinzugefügt, um sicher zu sein. Fühlen Sie sich frei, einen Kommentar zu hinterlassen, wenn einer dieser Punkte nicht wirklich benötigt wird.
Wechseln Sie zum Tab Info Ihres Projekts und erweitern Sie den Eintrag URL-Typen .
Fügen Sie einen Typ mit dem Bezeichner weixin
hinzu, und das URL-Schema ist die AppID, die Sie erhalten haben sollten, nachdem Sie Ihre App erfolgreich bei WeChat registriert haben.
Bearbeiten Sie Ihre AppDelegate.swift-Datei, um die folgenden Funktionen zu enthalten. Stellen Sie sicher, dass Sie Ihre AppID anstelle des Beispiels verwenden. Ansonsten können Sie ziemlich kopieren und einfügen.
%Vor% Sehen Sie sich die Beispiel-Demo-App für die optionalen Funktionen an, die Sie in onReq
und onResp
ausführen können. (Der aktuelle Link ist hier aber wenn Dieser Link ist kaputt. Suchen Sie dann in den offiziellen WeChat-Entwicklerdokumenten nach der Beispieldemo.)
Klicken Sie mit der rechten Maustaste auf Info.plist und wählen Sie Öffnen als & gt; Quellcode. Fügen Sie dann die folgenden zwei Schlüssel vor dem letzten </dict>
hinzu:
Laut der Readme-Datei, die im SDK enthalten ist, ist dies erforderlich, da iOS 9 den HTTP-Zugriff einschränkt.
An diesem Punkt sollten Sie in der Lage sein, die WeChat-API innerhalb Ihres Swift-Codes zu verwenden. Ich kann später noch ein paar API-Beispiele hinzufügen, aber das Folgende ist ein Beweis für das Konzept.
Senden Sie eine Textnachricht
%Vor% Ich konnte die Objective-C-Definition enum WXSceneSession
nicht verwenden, also habe ich nur den ganzzahligen Wert verwendet. Es gibt wahrscheinlich eine bessere Lösung, aber das funktioniert jetzt.
Diese Lösung wurde mit Xcode 7.2 und iOS 9.2 getestet.
%Vor%Erwarteter Typ - & gt; für diesen Fehler, überprüfen Sie einmal die Apple-Dokumentation für UIImage es ist in
UIKit
, nichtFoundation
. Die Dokumente sind jetzt alle auf Swift ausgerichtet.
In Ziel-c.
%Vor%, die Sie am Anfang Ihrer Datei benötigen (keine Notwendigkeit für den Foundation-Import).
konnte den Bridging-Header nicht importieren - & gt; Du hast den kleinen Fehler gemacht diesen Link zu sehen, es hilft du
Die Antwort von Suragch beschreibt, wie Sie die WeChat-API in Ihrer App detailliert hinzufügen können. Aber nach meiner Implementierung habe ich herausgefunden, dass die Prozedur jetzt einfacher sein kann. Im Folgenden werde ich einige der Änderungen im Vergleich zu dieser Antwort hervorheben. Sie können auf diese Antwort für weitere Details verweisen.
Laden Sie das SDK von der Ressourcen-Seite . Zum Zeitpunkt des Verfassens gibt es zwei Versionen, die erste enthält die Zahlungsfunktion und die zweite nicht. Wählen Sie das eine nach Ihrem Bedarf. Kopieren Sie die Dateien nach dem Herunterladen in Ihr Projekt. Fügen Sie die erforderlichen Frameworks und Bibliotheken entsprechend dieser Antwort hinzu. Dieser Schritt ist nicht erforderlich, wenn Sie CocoaPods installieren.
Da WXApi
in Objective-C geschrieben ist, müssen wir einen Bridging-Header erstellen, um ihn in Swift-Projekten zu verwenden. Siehe diesen Link zum Hinzufügen eines Bridging-Headers.
Fügen Sie nach dem Erstellen des Bridging-Headers die folgende Zeile ein:
%Vor%In AppDelegate werden die folgenden zwei Methoden vor iOS 9 verwendet:
%Vor%In iOS 9 sind die beiden obigen Methoden veraltet, und das folgende wird verwendet:
%Vor%In meinem Fall wird nur das Folgende benötigt:
%Vor%Wenn es für Sie nicht funktioniert, fügen Sie auch Folgendes hinzu:
%Vor%Um zu überprüfen, ob die WeChat-App auf dem Telefon installiert ist, verwenden Sie den folgenden Code:
%Vor%