ios – 如何将WeChat API添加到Swift项目中?

ios – 如何将WeChat API添加到Swift项目中?,第1张

概述我正在尝试为我的项目添加 WeChat共享功能.但是 SDK files, documentation, development guides和 sample project都在Objective-C中.我正在Swift中编写我的项目. 我试过的 我将以下SDK文件添加到我的项目中 libWeChatSDK.aWechatAuthSDK.hWXApi.hWXApiObject.h 我尝试按照 我正在尝试为我的项目添加 WeChat共享功能.但是 SDK files,documentation,development guides和 sample project都在Objective-C中.我正在Swift中编写我的项目.

我试过的

我将以下SDK文件添加到我的项目中

libWechatsdk.aWechatAuthSDK.hWXAPI.hWXAPIObject.h

我尝试按照this answer的建议使用桥接头.

MyProject的桥接,header.h

#import "WXAPI.h"

错误

但是,我仍然无法在我的代码中使用WeChat API.我收到以下错误:

WXAPIObject.h

- (voID) setThumbImage:(UIImage *)image;    // Expected a type

WXAPI.h

+(BOol) sendAuthReq:(SendAuthReq*) req vIEwController : (UIVIEwController*) vIEwController delegate:(ID<WXAPIDelegate>) delegate;// Expected a type

<unkNown>:0: error: Failed to import brIDging header '[my path]/MyProject-BrIDging-header.h'

有没有人成功地将WeChat API与Swift项目一起使用?我很乐意看到一个简短的步骤列表或一些示例代码.我不介意是否有任何补充链接到中国资源.

解决方法 有关此过程的更新更新,请参阅 @chengsam’s answer.

如何在Swift项目中使用WeChat SDK

official WeChat developer English instructions似乎已过时且不完整. Chinese instructions更好但只处理Objective-C.以下步骤显示如何将WeChat(微信微信)SDK添加到您的项目中.

申请微信App ID

英文网站是dev.wechat.com.但我无法在英文网站上成功注册.我最终使用中文网站:open.weixin.qq.com.如何做到这一点超出了这个答案的范围,但如果你不懂中文,谷歌翻译可以提供帮助.请注意,您可能还需要在中国的电话号码.

在您的应用获得批准后(您只需要描述您的应用,无需提供二进制或源代码),您将获得一个应用ID,您将在代码中使用该ID.

下载微信SDK

您可以尝试使用英文网站上的SDK,但由于在撰写本文时在中文网站上似乎更新,所以我在这里下载SDK以获取这些说明.

我从this page下载了SDK,微信SDK版本1.6.2的链接是here.你可能想要使用最新的版本,不管将来是什么.

将SDK文件复制到Xcode项目中

为了组织起见,我将所有文件放在项目导航器中的同一组中. (实际文件仍在项目的根文件夹中.)

错误修复:

在SDK 1.6.2中,问题中描述的问题出现并由@Anbu.Karthik’s answer解决.只需添加#import< UIKit / UIKit.h>到WXAPIObject.h. (您实际上可以用它替换#import< Foundation / Foundation.h>.)如果您在1.6.2之后使用某些SDK版本,这可能不再是一个问题,因此您可能只想在修改之前完成其他步骤SDK文件.

添加桥接标头

请注意,一些SDK文件是Objective-C标头(.h)文件.要在Swift项目中使用它们,您需要将BrIDging header文件添加到项目中.添加一个新文件(文件>新建>文件…> iOS>源>标题文件),并将其命名为YourProjectname-BrIDging-header.h.

将以下行添加到此文件中.

#import "WXAPI.h"

在我的项目中,这是我的桥接头文件中唯一的一行,因为它是WeChat SDK所需的唯一一行. (当我创建头文件时,还有一些其他自动生成的代码行,但我只是评论它们因为我不知道它们做了什么.如果我发现它们有用,我会回来编辑这个答案. )

有关添加桥接标头的更多帮助,请参见here,here和here.

现在无需在Swift代码文件中导入任何WeChat SDK文件.

添加所需的框架和库

转到项目的“常规”选项卡,然后向下滚动到“链接的框架和库”.单击加号()按钮以添加以下必需的框架和库.

> libc .tbd
> CoreTelephony.framework
> libsqlite3.tbd
> libz.tbd
> SystemConfiguration.framework
> libWechatsdk.a(如果您已将其复制到项目中,那么这个应该已存在.)

它现在应该是这样的:

自述文件中提到了CoreTelephony,并且在线SDK安装说明中提到了libc,但反之亦然.我只是添加它们都是安全的.如果实际上不需要其中任何一个,请随意发表评论.

添加URL方案

转到项目的“信息”选项卡,然后展开“URL类型”项.

添加标识符为weixin的类型,URL Schemes是您在使用微信成功注册应用程序后应该获得的AppID.

编辑AppDelegate

编辑AppDelegate.swift文件以包含以下功能.请务必使用您的AppID而不是示例.除此之外,你几乎可以复制和粘贴.

import UIKit@UIApplicationMainclass AppDelegate: UIResponder,UIApplicationDelegate,WXAPIDelegate {    var window: UIWindow?    func application(application: UIApplication,dIDFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {        // WeChat: replace with your AppID        WXAPI.registerapp("wx68aa08d12b601234")        return true    }    func application(application: UIApplication,handleOpenURL url: NSURL) -> Bool {        return WXAPI.handleOpenURL(url,delegate: self)    }    func application(application: UIApplication,openURL url: NSURL,sourceApplication: String?,annotation: AnyObject) -> Bool {        return WXAPI.handleOpenURL(url,delegate: self)    }    func onReq(req: BaseReq!) {        // do optional stuff    }    func onResp(resp: BaseResp!) {        // do optional stuff    }    // ...}

有关可在onReq和onResp中执行的可选 *** 作,请参阅示例演示应用程序. (当前链接是here,但是如果该链接被破坏,那么请在官方微信开发者文档中查找示例演示.)

编辑Info.pList

右键单击Info.pList并选择Open As>源代码.然后在最终的< / dict>之前添加以下两个键:

<key>LSApplicationQuerIEsSchemes</key><array>    <string>weixin</string></array><key>NSAppTransportSecurity</key><dict>    <key>NSAllowsArbitraryLoads</key>    <true/></dict>

根据SDK附带的自述文件,这是必要的,因为iOS 9限制了http访问.

使用微信API

此时,您应该能够在Swift代码中开始使用WeChat API.我稍后可能会添加更多API示例,但以下是概念证明.

发一个短信

let message = SendMessagetoWXReq()message.text = "Hello WeChat"message.bText = truemessage.scene = Int32(WXScenesession.rawValue) // WXScenesessionWXAPI.sendReq(message)

我无法使用Objective-C定义的枚举WXScenesession,所以我只使用了它的整数值.可能有更好的解决方案,但现在可以使用.

上面的解决方案使用Xcode 7.2和iOS 9.2进行了测试.

总结

以上是内存溢出为你收集整理的ios – 如何将WeChat API添加到Swift项目中?全部内容,希望文章能够帮你解决ios – 如何将WeChat API添加到Swift项目中?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1103765.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存