Skip to content

Latest commit

 

History

History
276 lines (217 loc) · 12.9 KB

README.md

File metadata and controls

276 lines (217 loc) · 12.9 KB

有料信息流sdk接入文档

版本号 日期 说明
1.1.5-rc01 2021-2-7 创建文档,支持穿山甲小说sdk
1.1.6-rc01 2021-3-4 支持穿山甲小说单频道,支持快手小视频
1.1.8-rc06 2021-4-16 增加统计,修复bug
1.1.9-rc01 2021-5-13 适配 adroi-sdk:3.8.7,头条内容sdk:2.4.1.0,小说sdk:2.0.2
1.2.0-rc02 2021-5-13 迁移到androidx,适配 adroi-sdk:3.8.7,头条内容sdk:2.4.1.0,小说sdk:2.0.2
1.2.1-rc03 2021-6-17 适配 adroi-sdk:3.9.7/3.9.9.3,头条内容sdk:2.7.1.2,小说sdk:3.0.1
1.2.2-rc01 2021-8-17 适配 adroi-sdk:10.0.0.1,头条内容sdk和小说合并 sdk版本号: 1.0.0.0
1.2.3-rc01 2021-9-6 适配 adroi-sdk:10.0.0.3,头条内容sdk和小说合并 sdk版本号: 1.2.0.0
1.2.4-rc01 2021-9-23 适配 adroi-sdk:10.0.0.3,头条内容sdk和小说合并 sdk版本号: 1.3.0.0
1.2.5-rc02 2022-2-18 适配 adroi-sdk:10.0.0.17,头条内容合作-sdk版本号: 1.7.0.0
1.2.6-rc01 2022-3-28 适配 adroi-sdk:10.0.0.23,头条内容合作-sdk版本号: 2.2.0.0
1.2.7-beta03 2022-4-28 适配 adroi-sdk:10.0.0.29.2,头条内容合作-sdk版本号: 2.4.0.0
1.2.8-beta01 2022-5-28 适配 adroi-sdk:10.0.0.33,头条内容合作-sdk版本号: 2.5.0.0
1.2.9-beta03 2022-7-21 适配 adroi-sdk:10.0.0.39,头条内容合作-sdk版本号: 2.5.0.0
1.3.0-beta01 2021-8-24 适配 adroi-sdk:10.0.0.45
头条内容合作-sdk版本号: 2.7.0.6
穿山甲广告-sdk版本号:4.6.0.7
快手-sdk版本号:3.3.29
百度内容-sdk版本号:9.22
百度小说-sdk版本号:6.0.3.5
1.3.0-beta03 2022-9-2 适配 adroi-sdk:10.0.0.51
头条内容合作-sdk版本号: 2.7.0.6
穿山甲广告-sdk版本号:4.7.1.2
快手-sdk版本号:3.3.31
百度内容-sdk版本号:9.23
百度小说-sdk版本号:6.0.3.5
1.3.2-beta06 2022-10-8 适配 adroi-sdk:10.0.0.51
头条内容合作-sdk版本号: 2.7.0.6
穿山甲广告-sdk版本号:4.7.1.2
快手-sdk版本号:3.3.31
百度内容-sdk版本号:9.23
百度小说-sdk版本号:6.0.3.5
1.3.3-beta01 2022-11-18 新增百度小说书架列表api
新增番茄小说书架列表api
信息流item去除默认背景
编辑频道icon适配深色模式
优化每个频道首次请求成功后,不展示成功提示
1.3.6-beta04 2023-1-16 适配 adroi-sdk:10.0.0.63
头条内容合作-sdk版本号: 2.9.0.4
快手内容-sdk版本号:3.3.32
百度小说-sdk版本号:6.0.3.6
百度广告-sdk版本号:9.25
gromore-sdk版本号:3.8.0.2
gradle升级至7.4
百度小说适配夜间模式
新增百度内容联盟热点专题
修复百度小说封面可能为null的问题
移除头条小说

CHANGELOG

Demo说明

由于各第三方sdk都需要验证包名以及签名,demo运行可能会有问题,demo只提供用于接入参考

SDK接入前说明

新用户需要联系商务申请必要的参数,目前需要的此参数有以下:

1.Appid

2.Apikey

请务必保存好这2个参数,这些是sdk初始化必须的参数,否则sdk不能正常运行。

SDK接入

一、增加依赖

  1. 在主project的allprojects -> repositories添加

    allprojects {
        repositories {
            google()
            jcenter()
            // 增加下面一行
            maven { url 'https://api.youliaokk.com:21380/repository/qj-feeds-sdk/' }
            // 如需接入 快手小视频sdk 或者 百度小说sdk ,增加下面一行
            // maven { url 'https://maven.freemeos.com:13458/repository/adroi/' }
        }
    }
  2. 在app工程的dependencies添加

    dependencies {
         // 增加下面依赖
         implementation 'com.youliao.sdk:news:1.3.6-beta04'
         // 如果使用glide4.x,增加依赖
         implementation 'com.youliao.sdk:glide4:1.3.0-rc01'
         // 如果使用coil,增加依赖
         implementation 'com.youliao.sdk:coil:1.3.0-rc01'
    }
  3. 接入adroi sdk,并且之前没有接入过adroi sdk,请按照adroi sdk文档进行接入 注意 当前最新版本对应的adroi sdk版本为10.0.0.63,请尽量保持一致,以免有兼容性问题

  4. 接入头条短视频sdk

    1) 添加sdk

     // 在allprojects的repositories中添加,如果需要同时接入小说,只需要添加一次
     maven { url "https://artifact.bytedance.com/repository/pangle/" }
     maven { url "https://artifact.bytedance.com/repository/Volcengine/" }
     maven { url 'https://artifact.bytedance.com/repository/AwemeOpenSDK' }
    
     // 穿山甲广告Sdk,可以使用在线依赖的方式,也可以使用adroi提供的aar包
     implementation('com.pangle.cn:ads-sdk-pro:4.9.0.8')
     implementation ('com.pangle.cn:pangrowth-sdk:2.9.0.4'){
         exclude group: 'com.pangle.cn', module: 'pangrowth-game-sdk'
         exclude group: 'com.pangle.cn', module: 'pangrowth-luckycat-sdk'
         exclude group: 'com.pangle.cn', module: 'partner-luckycat-api-sdk'
         exclude group: 'com.pangle.cn', module: 'pangrowth-reward-sdk'
         exclude group: 'com.pangle.cn', module: 'partner-live-sdk'
         exclude group: 'com.pangle.cn', module: 'pangrowth-novel-sdk' // 如果需要同时接入小说,需要删除本行
     }
    

    2)需要接入穿山甲sdk,请参照adroi文档进行接入

    3)初始化,为了合规请在用户同意协议之后调用:

     initBytedanceDp("配置json文件名") // 该配置文件请从穿山甲后台下载,并放到assets目录下
    

    4)在app的build.gradle中添加

     //小视频3100及以上版本必须依赖gradle脚本,否则sdk不能正常运行
     apply from: 'https://sf3-fe-tos.pglstatp-toutiao.com/obj/pangle-empower/android/pangrowth_media/plugin_config.gradle'
    
     android{
         defaultConfig{
             manifestPlaceholders.put("APPLOG_SCHEME", "rangersapplog.xxxxxxxx".toLowerCase())
         }
     }
    

    5)如果AndroidMenifest.xml中添加:

     <provider
         android:name="com.bytedance.sdk.dp.act.DPProvider"
         android:authorities="${applicationId}.BDDPProvider"
         android:exported="false" />
    
  5. 接入快手小视频sdk

    1)添加sdk,如果之前有接入快手广告sdk需要删除原有aar包

     implementation 'com.kssdk.sdk:kssdk-ct:3.3.32'
     // 如果使用androidx,需要添加此依赖
     implementation 'androidx.legacy:legacy-support-core-ui:1.0.0'
    

    2)初始化,为了合规请在用户同意协议之后调用:

     YouliaoNewsSdk.initKs(appid, "应用名称") // appid有料这边会提供
    
    1. 需要调用下面的方法

      FragmentManager.enableNewStateManager(false)

    2. 新增快手合规开关 YouliaoNewsSdk.updateKsRecommendation(false) // 默认true。true:推荐 false:合规

  6. 接入百度小说sdk

    1)添加sdk

     //注意小说版本需要和百度内容版本匹配
     implementation 'com.baidu:novel.sdk:6.0.3.6'
    

    2)需要接入百度内容sdk,请参照adroi文档进行接入

    3)初始化,为了合规请在用户同意协议之后调用:

     YouliaoNewsSdk.initBaiduNovel(appsid, "应用名称") // appid有料这边会提供
    

    4)获取小说单频道fragment

     YouliaoNewsSdk.getBaiduNovelFragment()
    

二、初始化及基本配置

  1. 在Application中的onCreate添加

    // java
    // *重要*,请添加下面这行
    AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO);
    // sdk方法
    // 此方法不会请求网络,请放在Application中调用,appid和secret参数会由渠杰提供,channel由接入方填入,json配置文件渠杰运营会提供,并放到assets目录下
    YouliaoNewsSdk.init(this, "appid", "apikey", "channel", "配置json文件名")
    	.setShareAppId("qqappid", "wxappid"); // qqappid,wxappid
     // 如果接入oaid,并且oaid版本为:1.0.25,可以依赖'com.youliao.sdk:msa:1.2.0',或者自行实现OaidProvider接口
     .setOaidProvider(new MasOaidProvider(this))
    
    // 注意:此方法会请求网络,如果有流量提醒弹框,可以在用户点击确认后再调用。不一定放在application中
    YouliaoNewsSdk.requestSdkConfig();
    // 注意:此方法用于获取用户所在城市,请在获取定位权限后调用。
    // 如果在NewsFragment.newInstance中有传入city,请不要再调用该方法
    YouliaoNewsSdk.requestLocation();
    
    // 此方法用于初始化adroi sdk,如果已经接入过adroi sdk或不需要adroi广告,请忽略;为了合规请在用户同意协议之后调用
    YouliaoNewsSdk.initAdroi("adroi-appid", "ADroi广告demo", false);
    // kotlin
    // *重要*,请添加下面这行
    AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO)
    // sdk方法
    YouliaoNewsSdk.apply {
      // 此方法不会请求网络,请放在Application中调用,appid和secret参数会由渠杰提供,channel由接入方填入,json配置文件渠杰运营会提供,并放到assets目录下
      init(this@MyApplication, "appid", "apikey", "channel", "配置json文件名")
      setShareAppId("qqappid","wxappid")
     // 如果接入oaid,并且oaid版本为:1.0.25,可以依赖'com.youliao.sdk:msa:1.2.0',或者自行实现OaidProvider接口
      setOaidProvider(MasOaidProvider(this@MyApplication))
      // 注意:此方法会请求网络,如果有流量提醒弹框,可以在用户点击确认后再调用。不一定放在application中
      requestSdkConfig()
      // 注意:此方法用于获取用户所在城市,请在获取定位权限后调用
      // 如果在NewsFragment.newInstance中有传入city,请不要再调用该方法
      requestLocation()
      
      // 此方法用于初始化adroi sdk,如果已经接入过adroi sdk或不需要adroi广告,请忽略;为了合规请在用户同意协议之后调用
      initAdroi("adroi-appid", "ADroi广告demo")
    }

三、使用

  1. 创建NewsFragment并显示

    // java
    FragmentManager fragmentManager = getSupportFragmentManager();
    FragmentTransaction transaction = fragmentManager.beginTransaction();
    fragment = NewsFragment.newInstance("news", false, "上海");
    // 第一次参数是 tab类型,默认为news,只有一个信息流页面时可以不设置
    // 第二个参数是 是否显示右下角的刷新按钮,默认false
    // 第三个参数是 城市名称,当在这里传入城市时,不要再调用requestLocation也不要调用setLocationProvider,正常情况下不要填写这个参数
    transaction.replace(R.id.container, fragment);
    transaction.commit();
    // kotlin
    val transaction = supportFragmentManager.beginTransaction()
    val fragment = NewsFragment.newInstance("news", false, "上海")
    // 第一次参数是 tab类型,默认为news,只有一个信息流页面时可以不设置
    // 第二个参数是 是否显示右下角的刷新按钮,默认false
    // 第三个参数是 城市名称,当在这里传入城市时,不要再调用requestLocation也不要调用setLocationProvider,正常情况下不要填写这个参数
    transaction.replace(R.id.container, fragment)
    transaction.commit()
  2. 设置主题色 在res->values->colors.xml中覆盖以下字段

 <?xml version="1.0" encoding="utf-8"?>
 <resources>
    <!--recyclerview顶部、底部提示背景色,负反馈文字边框颜色 等-->
    <color name="youliao_primary">#6FCCFF</color>
    <!--频道tab选中颜色,按钮颜色,详情页progressbar颜色等-->
    <color name="youliao_primary_dark">#005DFF</color>
 </resources>
  1. 更换loading图 在res->mipmap下覆盖youliao_loading_logo.png文件 注意,每个dpi文件夹下都要覆盖

  2. 更换部分尺寸 在res->values->dimens.xml中覆盖以下字段

 <?xml version="1.0" encoding="utf-8"?>
 <resources>
  <!--顶部频道文字size-->
  <dimen name="youliao_tab_title">17sp</dimen>
  <!--新闻标题文字size-->
  <dimen name="youliao_news_title">18sp</dimen>
  <!--新闻左右边距-->
  <dimen name="youliao_news_margin_horizontal">15dp</dimen>
 </resources>
  1. NewsFragment实例方法

    // kotlin
    // 1:刷新新闻,第一个参数表示是否跳转到第一个tab(部分页面可能不支持)
    fun refreshData(firstTab: Boolean = false)
    // 2:滑动到顶部,第一个参数表示是否平滑的滑动到顶部(部分页面可能不支持)
    fun scrollToTop(smooth: Boolean = false)
    //3.设置全局字体大小
    YouliaoNewsSdk.setNewsDetailFontSize(fontSize: FontSize)
    //4.设置新闻详情页字体大小
    YouliaoNewsSdk.setNewsDetailFontSize(fontSize: FontSize)

四、其他

  1. 关于混淆 混淆规则已经打在aar包里