Mac下 phonegap/cordova 集成sharesdk

1.安装phonegap 2.9.1

PhoneGap是一款基于HTML5标准的跨平台开源手机Web应用开发框架。它允许用户通过Web技术访问移动设备的本地应用、API接口及应用程序等。

PhoneGap的官方网站

官网下载zip文件,解压后,目录结构如下:


打开终端,进入lib/ios/bin 目录,执行命令

./create /Users/dale/Desktop/demo1 hello.world.test HelloWorld

命令意思是在桌面创建demo1文件夹,里面创建一个helloWorld工程,中间3段包识别名


然后再终端转换目录到桌面demo1/cordova(这里的目录根据你创建工程的目录相应变化)

执行命令: ./build

看到build success,就是成功了

然后进入demo文件夹,打开xdoer工程文件,run一下吧


2 下载shareSDK

解压,拖到helloworld工程下,作为一个子目录,引用的话要加好链接,不清楚这个拖动的要直接复制所有文件,之后,工程目录如下:


然后再class目录中找到 AppDelegate.m文件,在其中加入

#import<ShareSDK/ShareSDK.h>

在- (BOOL)application: didFinishLaunchingWithOptions:方法中调用registerApp方法来初始化SDK
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    [ShareSDK registerApp:@"xxxx"];     //参数xxxx为ShareSDK官网中添加应用后得到的AppKey
    
    //……
    return YES;
}

在下载的sharesdk demo中自定义分享界面(Custom shate View…)文件夹下的 AGAppDelegat.m

文件,拷贝它的 -initializePlat函数内容,加入到[ShareSDK registerApp:@"xxxx"]后面,注意函数原有内容不要删除,结构大致如下

[ShareSDK registerApp:@"xxxx"];
    
    /**
     连接新浪微博开放平台应用以使用相关功能,此应用需要引用SinaWeiboConnection.framework
     http://open.weibo.com上注册新浪微博开放平台应用,并将相关信息填写到以下字段
     **/
    [ShareSDK connectSinaWeiboWithAppKey:@"2489905623"
                               appSecret:@"097a54f4f4a553f3efa1669c68b5ef0d"
                             redirectUri:@"http://open.weibo.com"];
    
    /**
     连接腾讯微博开放平台应用以使用相关功能,此应用需要引用TencentWeiboConnection.framework
     http://dev.t.qq.com上注册腾讯微博开放平台应用,并将相关信息填写到以下字段
     
     如果需要实现SSO,需要导入libWeiboSDK.a,并引入WBApi.h,将WBApi类型传入接口
     **/
    [ShareSDK connectTencentWeiboWithAppKey:@"801307650"
                                  appSecret:@"ae36f4ee3946e1cbb98d6965b0b2ff5c"
                                redirectUri:@"http://www.sharesdk.cn"
                                   wbApiCls:[WeiboApi class]];
因为包含了一些新标示符,需要import一些头文件,下面列的一些头文件不够,排除所有的error,为了测试,我吧一些需要分享给的目标给注释了,只留下微博,微信这些,若是需要,可自行查找相关头文件

#import "WeiboApi.h"
#import "WXApi.h"
#import "YXApi.h"
#import <TencentOpenAPI/TencentOAuth.h>
#import <TencentOpenAPI/QQApiInterface.h>


新浪微博开放平台创建账号,并创建应用

    [ShareSDK connectSinaWeiboWithAppKey:@“xx”

                               appSecret:@"xx"

                             redirectUri:@“http://www.baidu.com"];

appkey和appsecret都是应用的基本信息

应用高级信息,授权回调页那个网址就是redirectUri,当然要你自己设置成自己要去的网址,(默认为空)

此时,编译的话会由很多链接错误,因为还有很多动态链接库没有加进来

选择工程目录,点击test,选择building phase,在链接二进制库文件末尾点击+号


加上一些链接库,包括:

libsqlite3.dylib
libz.1.25.dylib
libstdc++.dylib
libicucore.dylib
MessegeUI.framework
Coretelephony.framework
CoreText.framework
CoreMotion.framework
security.framework


3 新建接口

在class目录下,新建一个objective c类,命名任意,我得myApp
头文件内容

#import <Foundation/Foundation.h>
#import <Cordova/CDVPlugin.h>
@interface Myapp : CDVPlugin
 -(void)shareInfo:(CDVInvokedUrlCommand*)command;
@end
m文件

//
//  Myapp.m
//  Test
//
//  Created by dalewang on 14-4-26.
//
//

#import "Myapp.h"
#import <ShareSDK/ShareSDK.h>
@implementation Myapp
-(void)shareInfo:(CDVInvokedUrlCommand*)command
{
   // NSString *imagePath = [[NSBundle mainBundle] pathForResource:@"http://58.216.171.202:9999/Upload/s150/2013-12-23/130322501343593929"  ofType:@"png"];
    //
    NSString* title=[command.arguments objectAtIndex:0];
    NSString* content=[command.arguments objectAtIndex:1];
    NSString* url=[command.arguments objectAtIndex:2];
    NSString* imagePath=[command.arguments objectAtIndex:3];
    //
    if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad) {
        NSLog(@"ipad");
        
    }
    else
    {
        NSLog(@"iphone or ipod");
        //构造分享内容
        id<ISSContent> publishContent = [ShareSDK content:content//
                                           defaultContent:@"分享好东西"//
                                                    image:[ShareSDK imageWithPath:imagePath]
                                                    title:title//
                                                      url:url//
                                              description:@"分享好东西"//
                                                mediaType:SSPublishContentMediaTypeNews];
        
        [ShareSDK showShareActionSheet:nil
                             shareList:nil
                               content:publishContent
                         statusBarTips:YES
                           authOptions:nil
                          shareOptions: nil
                                result:^(ShareType type, SSResponseState state, id<ISSPlatformShareInfo> statusInfo, id<ICMErrorInfo> error, BOOL end) {
                                    if (state == SSResponseStateSuccess)
                                    {
                                        NSLog(@"分享成功");
                                    }
                                    else if (state == SSResponseStateFail)
                                    {
                                        NSLog(@"分享失败,错误码:%d,错误描述:%@", [error errorCode], [error errorDescription]);
                                    }
                                }];
    }
    
}
@end
 在index.html文件中加入调用代码

加入一段js代码,

 <script>
        function test() {       
     cordova.exec(null,     null,"MyApp","shareInfo",["标题","分享的内容","分享的连接","图片链接"]);
        }
    </script>

然后找个标签触发test函数,就ok了

测试结果如下:



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值