Wie fügt man die WeChat API zu einem Swift Projekt hinzu?

7

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.

Was ich versucht habe

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%

Fehler

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%

Frage

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.

    
Suragch 01.03.2016, 09:22
quelle

3 Antworten

20

Siehe @ chensams Antwort für neuere Aktualisierungen dieses Prozesses.

So verwenden Sie das WeChat SDK in Ihrem Swift-Projekt

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.

Bewerben Sie sich für eine WeChat App ID

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.

Laden Sie das WeChat SDK herunter

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.

Kopieren Sie die SDK-Dateien in Ihr Xcode-Projekt

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.

>

Fügen Sie einen Überbrückungskopf hinzu

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.

Fügen Sie die erforderlichen Frameworks und Bibliotheken hinzu

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.

  • libc ++. tbd
  • CoreTelephony.framework
  • libsqlite3.tbd
  • libz.tbd
  • SystemConfiguration.framework
  • libWeChatSDK.a (Dieser sollte bereits vorhanden sein, wenn Sie ihn in Ihr Projekt kopiert haben.)

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.

URL-Schema hinzufügen

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.

AppDelegate bearbeiten

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.)

Bearbeiten Sie Info.plist

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:

%Vor%

Laut der Readme-Datei, die im SDK enthalten ist, ist dies erforderlich, da iOS 9 den HTTP-Zugriff einschränkt.

Verwenden Sie die WeChat-API

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.

    
Suragch 08.03.2016, 08:22
quelle
1
  

Erwarteter Typ - & gt; für diesen Fehler, überprüfen Sie einmal die Apple-Dokumentation für UIImage es ist in UIKit , nicht Foundation . Die Dokumente sind jetzt alle auf Swift ausgerichtet.

%Vor%

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

    
Anbu.karthik 01.03.2016 09:27
quelle
1

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 herunter

CocoaPods verwenden

%Vor%

Handbuch

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.

Brückenkopf hinzufügen

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%

iOS 9+ Änderungen

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%

Bearbeiten Sie Info.plist

In meinem Fall wird nur das Folgende benötigt:

%Vor%

Wenn es für Sie nicht funktioniert, fügen Sie auch Folgendes hinzu:

%Vor%

Extra

Um zu überprüfen, ob die WeChat-App auf dem Telefon installiert ist, verwenden Sie den folgenden Code:

%Vor%     
chengsam 18.07.2017 16:51
quelle

Tags und Links