/DAudiobook

模仿QQ布局写的一个小项目--小熊有声小说

Primary LanguageObjective-CMIT LicenseMIT

小熊有声书

License GitHub last commit GitHub repo size in bytes

效果图:

目前主要是有菜单页面,音乐播放,视频播放,文字段子,论坛讨论和图片美图这几个大的板块:

 

 

用到的第三方SDK:

Bmob后端云 (主要用于,用户的登录注册和论坛的发布) Bmob推送 (用于推送信息到手机) Bugly腾讯 (腾讯bug收集, 用于收集和分析应用的卡顿和崩溃,以及用户的留存) 友盟 (用于第三方登录和分享,如QQ,微信等) 腾讯广告 (应用内加广告,增加个人开发者收入)

代码结构:

好多方法的实现,都是放在根视图里了

1.应用内加广告

虽然在App中加入广告来盈利是比较低级的商业化方式,但对于个人开发者或者小团队开发者来说也是个不错的选择, 基本上应用的广告收入都是按展示和点击计算的,各种广告联盟都有自己的SDK,直接引用就行了。 如果用户有好多是国外的,可以使用谷歌GoogleAdMob,但是访问得要梯子,而且是用美金结算的,只有超过100刀才会给你。 如果只是国内的话可以用腾讯广告,结算属于比较快的,一月一结没有金额限制。 腾讯广告后台详情,基本上是没有怎么理会过 腾讯广告后台

广告形式主要有: 开屏广告,原生广告,横幅广告,插页广告,视频广告; 开屏广告和原生广告用户体验好,大厂用的比较多,其它的用户体验都比较差

横幅广告

插页广告

2 数据接口:

因为好多数据都是在网上抓的,怕失效都存在本地了,在LocalData文件夹下。 因为没有服务器(当然会搭服务器的小哥可以跳过),网上有好多免费的API数据接口,大家可以找一下看看有没有需要的。 当然也可以使用各种的云服务,最稳定的应该属于腾讯云阿里云了,但是比较贵。

免费的也有,像是bmob后端云或者是LeanCloud(不过免费版有很多限制)

我现在用的bmob后端云,控制台效果: 后端云控制台 具体实现代码奉上

       //注册key
        [Bmob registerWithAppKey:BmobAppkey];
 //登录
            [BmobUser loginWithUsernameInBackground:@"用户名" password:@"登录密码"  block:^(BmobUser *user, NSError *error) {
         if (user) {
                   登录成功
                    
                } else {
                   登录失败
                  
                }
            }];

         BmobUser *bUser = [[BmobUser alloc] init];
            bUser.username=views.username.textField.text;//名字
            bUser.password=views.password.textField.text;//密码
            [bUser signUpInBackgroundWithBlock:^ (BOOL isSuccessful, NSError *error){
               @"注册成功"
                } else {
                @"注册失败"
                }
            }];

具体数据的增删改查,看文档吧这里就不细讲了

实在不行的话可以使用抓包工具来寻找自己需要的数据,工具下载奉上

第三步 用户第三方登录分享:

用户第三方登录分享(不需要的可以跳过去) 新浪开发平台地址 腾讯开放平台地址 微信开发平台地址 注册提交资料就行,注意微信提交审核的官网要正规点,不然审核不过,随便搭个好看点的静态页面吧。 SDK可以单独集成,也可以使用第三方,推荐使用友盟,使用简单点而且加入友盟统计的时候方便点 依赖库.png

第四步 应用统计:

集成友盟统计(不需要的可以跳过) 集成友盟统计可以分析流量来源、内容使用、用户属性和行为数据,可以知道用户干了什么

    //初始化SDK
   //设置友盟Appkey
    [UMSocialData setAppKey:UmengAppkey];
    //使用友盟统计
    UMConfigInstance.appKey = UmengAppkey;
    UMConfigInstance.channelId = @"App Store";//来源
    [MobClick startWithConfigure:UMConfigInstance];

设置用户的属性,这样用户做的事件就可以携带着这些属性,传的样式是字典

//设置超级属性
    NSMutableDictionary *dic = [NSMutableDictionary dictionaryWithObjectsAndKeys:user.idString, @"uid",user.nickName,@"name",user.gender, @"sex", nil];
    [DplusMobClick registerSuperProperty:dic];
    

统计页面

- (void)viewWillAppear:(BOOL)animated{
    [super viewWillAppear:animated];
    [MobClick beginLogPageView:@"首页"];
}

- (void)viewWillDisappear:(BOOL)animated{
    [super viewWillDisappear:animated];
    [MobClick endLogPageView:@"首页"];
}

自定义事件,数量统计,比如可以统计充值按钮被点击的多少下

 @param  eventId 网站上注册的事件Id.
 @param  label 分类标签。不同的标签会分别进行统计,方便同一事件的不同标签的对比,为nil或空字符串时后台会生成和eventId同名的标签.
 @param  accumulation 累加值。为减少网络交互,可以自行对某一事件ID的某一分类标签进行累加,再传入次数作为参数。
[MobClick event:@"kaola_props"];//传定义的ID

第五步:bug收集

用过的感觉腾讯bugly界面好看点,友盟方便点直接友盟统计就可以收集到。其实也没啥好说的,腾讯bugly也可以统计,友盟统计也可以收集bug,感觉都差不多。 腾讯bugly.png

第六步:消息推送

现状推送的第三方SDK很多,像友盟推送,极光推送,信鸽消息推送等等,个人感觉极光推送是最快的(也有可能是自己的错觉,个人看法) ####1.创建推送证书 创建推送证书1.png

创建推送证书2.png

####2.导入SDK将SDK包解压 在Xcode中选择“Add files to 'Your project name'...”,将解压后的lib子文件夹(包含JPUSHService.h、jpush-ios-x.x.x.a,jcore-ios-x.x.x.a)添加到你的工程目录中。

####3.使用 极光推送可以设置标签和别名达到个性化单独推送的效果,比如单独推送某人,或者按地区推送。 具体实现自己看极光开发者文档吧太多了,不细写了,

####4.点击推送控制跳转的页面 在networkDidReceiveMessage函数里处理得到的参数, 来确定跳转的页面 注意设置角标,不过好像第一次点进角标不会消失,再点才会,好像简书的也是这样(不知道是不是错觉)

- (void)application:(UIApplication *)application
didReceiveRemoteNotification:(NSDictionary *)userInfo {
    if (userInfos==nil) {
        userInfos =userInfo ;
//        通知方法回调:接受自定义消息 
        [self networkDidReceiveMessage:userInfos];
    }
    
    [JPUSHService handleRemoteNotification:userInfo];
    [JPUSHService setBadge:0];// 设置角标(到服务器)
   
    
}