最新公告
  • 欢迎您光临小白之家,提供代搭建与我们一样的资源站,系统搭建出售赞助打赏
  • 文章介绍
  • 评价建议
  •  

    1.适用范围

    Java8

    Kotlin:1.3.11

    Gradle:3.1.2

    Android Studio:3.2

    2.集成准备

    在配置CC阅读android客户端前,请先申请阿里热修复,友盟统计,新浪,QQ,微信等第三方平台的appkey,广告目前接入的是广点通广告,如需要,申请广点通广告位。如需推送功能,目前支持小米推送及华为推送,请申请相应功能。

    阿里热修复   https://help.aliyun.com/product/51340.html

    友盟统计   https://www.umeng.com

    新浪微博   https://open.weibo.com/

    QQ   https://connect.qq.com/index.html

    微信   https://open.weixin.qq.com/

    广点通   https://e.qq.com/dev/index.html

    小米推送   https://dev.mi.com/console/appservice/push.html

    华为推送   https://developer.huawei.com/consumer/cn/service/hms/pushservice.html

    支付宝   https://open.alipay.com/platform/home.htm

    阿里短信 https://help.aliyun.com/product/44282.html

    微信支付   https://pay.weixin.qq.com/index.php/core/home/login?return_url=%2F

    3.配置文件

    1.在Android Studio工程中的App模块中的SophixStubApplication文件中配置阿里热修复的相关信息:

    @Override
    protected void attachBaseContext(Context base) {
    super.attachBaseContext(base);
    // 如果需要使用MultiDex,需要在此处调用。
    MultiDex.install(this);
    initSophix();
    }
    private void initSophix() {
    String appVersion = \\\\\\\\\\\\\\\"0.0.0\\\\\\\\\\\\\\\";
    try {
    appVersion = this.getPackageManager()
    .getPackageInfo(this.getPackageName(), 0)
    .versionName;
    } catch (Exception e) {}
    final SophixManager instance = SophixManager.getInstance();
    instance.setContext(this)
    .setAppVersion(appVersion)
    .setSecretMetaData(\\\\\\\\\\\\\\\"appkey\\\\\\\\\\\\\\\", \\\\\\\\\\\\\\\"appsecret\\\\\\\\\\\\\\\", \\\\\\\\\\\\\\\"appsecretToken\\\\\\\\\\\\\\\")
    .setEnableDebug(true)
    .setEnableFullLog()
    .setPatchLoadStatusStub(new PatchLoadStatusListener() {
    @Override
    public void onLoad(final int mode, final int code, final String info, final int handlePatchVersion) {
    if (code == PatchStatus.CODE_LOAD_SUCCESS) {
    Log.i(TAG, \\\\\\\\\\\\\\\"sophix load patch success!\\\\\\\\\\\\\\\");
    } else if (code == PatchStatus.CODE_LOAD_RELAUNCH) {
    // 如果需要在后台重启,建议此处用SharePreference保存状态。
    Log.i(TAG, \\\\\\\\\\\\\\\"sophix preload patch success. restart app to make effect.\\\\\\\\\\\\\\\");
    }
    }
    }).initialize();
    }
    如不需要此功能,在AndroidManifest.xml中修改application的name为BookStoreApplication,并在BookStoreApplication类的onCreate方法中注释或删除SophixManager.getInstance().queryAndLoadNewPatch()

    2.在Android Studio工程中的App模块中的BookStoreApplication文件中,配置友盟相关信息及三方信息,用于三方登录及分享功能:

    UMConfigure.init(this, \\\\\\\\\\\\\\\"友盟key\\\\\\\\\\\\\\\",”渠道”, UMConfigure.DEVICE_TYPE_PHONE, \\\\\\\\\\\\\\\"\\\\\\\\\\\\\\\")
    setScenarioType(this, MobclickAgent.EScenarioType.E_UM_NORMAL)
    /**
    * 设置组件化的Log开关
    * 参数: boolean 默认为false,如需查看LOG设置为true
    */
    UMConfigure.setLogEnabled(BuildConfig.DEBUG_MODE)
    PlatformConfig.setWeixin(\\\\\\\\\\\\\\\"appkey\\\\\\\\\\\\\\\", \\\\\\\\\\\\\\\"appsecret\\\\\\\\\\\\\\\")
    PlatformConfig.setSinaWeibo(\\\\\\\\\\\\\\\"appkey\\\\\\\\\\\\\\\", \\\\\\\\\\\\\\\"appsecret\\\\\\\\\\\\\\\", \\\\\\\\\\\\\\\"授权回调地址\\\\\\\\\\\\\\\")
    PlatformConfig.setQQZone(\\\\\\\\\\\\\\\"appkey\\\\\\\\\\\\\\\", \\\\\\\\\\\\\\\"appsecret\\\\\\\\\\\\\\\")
    注意QQ除了在这儿配置外,在AndroidManifest.xml中也需要配置
    /**
    * 友盟-QQ
    */
    <activity
    android:name=\\\\\\\\\\\\\\\"com.tencent.tauth.AuthActivity\\\\\\\\\\\\\\\"
    android:launchMode=\\\\\\\\\\\\\\\"singleTask\\\\\\\\\\\\\\\"
    android:noHistory=\\\\\\\\\\\\\\\"true\\\\\\\\\\\\\\\">
    <intent-filter>
    <action android:name=\\\\\\\\\\\\\\\"android.intent.action.VIEW\\\\\\\\\\\\\\\" />
    <category android:name=\\\\\\\\\\\\\\\"android.intent.category.DEFAULT\\\\\\\\\\\\\\\" />
    <category android:name=\\\\\\\\\\\\\\\"android.intent.category.BROWSABLE\\\\\\\\\\\\\\\" />
    <data android:scheme=\\\\\\\\\\\\\\\"tencentAPPKEY\\\\\\\\\\\\\\\" />
    </intent-filter>
    </activity>
    在AndroidManifest.xml还需要配置友盟的渠道
    /**
    * Channel ID用来标识App的推广渠道,作为推送消息时给用户分组的一个维度
    */
    <meta-data
    android:name=\\\\\\\\\\\\\\\"UMENG_CHANNEL\\\\\\\\\\\\\\\"
    android:value=\\\\\\\\\\\\\\\"${CHANNEL_VALUE}\\\\\\\\\\\\\\\" />

    3.在Android Studio工程中的App模块中的BookStoreApplication文件中,配置推送相关功能。小米推送:

    private fun initMiuiPush() {
    if (shouldInit()) {
    MiPushClient.registerPush(this, \\\\\\\\\\\\\\\"AppID\\\\\\\\\\\\\\\", \\\\\\\\\\\\\\\"AppKey\\\\\\\\\\\\\\\")
    }
    // 打开Log
    val newLogger = object : LoggerInterface {
    override fun setTag(tag: String) {
    // ignore
    }
    override fun log(content: String, t: Throwable) {
    Log.d(TAG, content, t)
    }
    override fun log(content: String) {
    Log.d(TAG, content)
    }
    }
    Logger.setLogger(this, newLogger)
    }
    华为推送主要配置在AndroidManifest.xml中:
    /**
    * 华为推送
    */
    <meta-data
    android:name=\\\\\\\\\\\\\\\"com.huawei.hms.client.appid\\\\\\\\\\\\\\\"
    android:value=\\\\\\\\\\\\\\\"appid=******\\\\\\\\\\\\\\\" />
    <meta-data
    android:name=\\\\\\\\\\\\\\\"com.huawei.hms.version\\\\\\\\\\\\\\\"
    android:value=\\\\\\\\\\\\\\\"2.6.1.301\\\\\\\\\\\\\\\" />
    华为推送接收到的数据为scheme类型,需要自信配置相应参数
    /**
    * 接入HMSSDK 需要注册的应用下载服务 | Access HMSSDK need to register app download service
    */
    <service
    android:name=\\\\\\\\\\\\\\\"com.huawei.updatesdk.service.deamon.download.DownloadService\\\\\\\\\\\\\\\"
    android:exported=\\\\\\\\\\\\\\\"false\\\\\\\\\\\\\\\" />
    <activity android:name=\\\\\\\\\\\\\\\".book_push.HuaWeiReceiverActivity\\\\\\\\\\\\\\\">
    <intent-filter>
    <action android:name=\\\\\\\\\\\\\\\"android.intent.action.VIEW\\\\\\\\\\\\\\\" />
    <category android:name=\\\\\\\\\\\\\\\"android.intent.category.DEFAULT\\\\\\\\\\\\\\\" />
    <data
    android:host=\\\\\\\\\\\\\\\"自定义域名\\\\\\\\\\\\\\\"
    android:path=\\\\\\\\\\\\\\\"/地址\\\\\\\\\\\\\\\"
    android:scheme=\\\\\\\\\\\\\\\"customscheme\\\\\\\\\\\\\\\" />
    </intent-filter>
    </activity>

    4.在CommenTag文件中,配置广点通广告:

    const val AD_APPKEY = \\\\\\\\\\\\\\\"******\\\\\\\\\\\\\\\"
    // 开屏页广告位
    const val AD_SPLASH_KEY = \\\\\\\\\\\\\\\"******\\\\\\\\\\\\\\\"
    //阅读页底部广告位
    const val AD_BANNER_KEY = \\\\\\\\\\\\\\\"******\\\\\\\\\\\\\\\"
    //阅读页章节末尾广告位
    const val AD_NATIVE_IMAGE = \\\\\\\\\\\\\\\"******\\\\\\\\\\\\\\\"
    //首页banner最后一页展示广告位
    const val AD_NATIVE_BANNER_IMAGE = \\\\\\\\\\\\\\\"******\\\\\\\\\\\\\\\"

    5.配置友盟统计多渠道,在config.gradle中定义渠道名称(示例中为渠道cc1/cc2/cc3/cc4)

    channel = [
    \\\\\\\\\\\\\\\"cc1\\\\\\\\\\\\\\\" : \\\\\\\\\\\\\\\'\\\\\\\\\\\\\\\"cc1\\\\\\\\\\\\\\\"\\\\\\\\\\\\\\\',
    \\\\\\\\\\\\\\\"cc2\\\\\\\\\\\\\\\" : \\\\\\\\\\\\\\\'\\\\\\\\\\\\\\\"cc2\\\\\\\\\\\\\\\"\\\\\\\\\\\\\\\',
    \\\\\\\\\\\\\\\"cc3\\\\\\\\\\\\\\\" : \\\\\\\\\\\\\\\'\\\\\\\\\\\\\\\"cc3\\\\\\\\\\\\\\\"\\\\\\\\\\\\\\\',
    \\\\\\\\\\\\\\\"cc4\\\\\\\\\\\\\\\" : \\\\\\\\\\\\\\\'\\\\\\\\\\\\\\\"cc4\\\\\\\\\\\\\\\"\\\\\\\\\\\\\\\',
    \\\\\\\\\\\\\\\"cc5\\\\\\\\\\\\\\\" : \\\\\\\\\\\\\\\'\\\\\\\\\\\\\\\"cc5\\\\\\\\\\\\\\\"\\\\\\\\\\\\\\\'
    ]
    在app模块中的build.gradle中引用相应渠道同时,在readviewlibrary中的build.gradle中应用相应渠道
    productFlavors {
    cc1 {
    manifestPlaceholders = [CHANNEL_VALUE:channel[\\\\\\\\\\\\\\\"cc1\\\\\\\\\\\\\\\"]]
    buildConfigField \\\\\\\\\\\\\\\"String\\\\\\\\\\\\\\\", \\\\\\\\\\\\\\\"DEBUG_CHANNEL\\\\\\\\\\\\\\\", channel[\\\\\\\\\\\\\\\"cc1\\\\\\\\\\\\\\\"]
    versionCode rootProject.ext.android_version.ccVersionCode
    versionName rootProject.ext.android_version.ccVersionName
    }
    cc2 {
    manifestPlaceholders = [CHANNEL_VALUE: channel[\\\\\\\\\\\\\\\"cc2\\\\\\\\\\\\\\\"]]
    buildConfigField \\\\\\\\\\\\\\\"String\\\\\\\\\\\\\\\", \\\\\\\\\\\\\\\"DEBUG_CHANNEL\\\\\\\\\\\\\\\", channel[\\\\\\\\\\\\\\\"cc2\\\\\\\\\\\\\\\"]
    versionCode rootProject.ext.android_version.ccVersionCode
    versionName rootProject.ext.android_version.ccVersionName
    }
    cc3 {
    manifestPlaceholders = [CHANNEL_VALUE: channel[\\\\\\\\\\\\\\\"cc3\\\\\\\\\\\\\\\"]]
    buildConfigField \\\\\\\\\\\\\\\"String\\\\\\\\\\\\\\\", \\\\\\\\\\\\\\\"DEBUG_CHANNEL\\\\\\\\\\\\\\\", channel[\\\\\\\\\\\\\\\"cc3\\\\\\\\\\\\\\\"]
    versionCode rootProject.ext.android_version.ccVersionCode
    versionName rootProject.ext.android_version.ccVersionName
    }
    cc4 {
    manifestPlaceholders = [CHANNEL_VALUE: channel[\\\\\\\\\\\\\\\"cc4\\\\\\\\\\\\\\\"]]
    buildConfigField \\\\\\\\\\\\\\\"String\\\\\\\\\\\\\\\", \\\\\\\\\\\\\\\"DEBUG_CHANNEL\\\\\\\\\\\\\\\", channel[\\\\\\\\\\\\\\\"cc4\\\\\\\\\\\\\\\"]
    versionCode rootProject.ext.android_version.ccVersionCode
    versionName rootProject.ext.android_version.ccVersionName
    }
    }
    productFlavors {
    cc1 {
    buildConfigField \\\\\\\\\\\\\\\"String\\\\\\\\\\\\\\\", \\\\\\\\\\\\\\\"DEBUG_CHANNEL\\\\\\\\\\\\\\\", rootProject.ext.channel[\\\\\\\\\\\\\\\"cc1\\\\\\\\\\\\\\\"]
    }
    cc2 {
    buildConfigField \\\\\\\\\\\\\\\"String\\\\\\\\\\\\\\\", \\\\\\\\\\\\\\\"DEBUG_CHANNEL\\\\\\\\\\\\\\\", rootProject.ext.channel[\\\\\\\\\\\\\\\"cc2\\\\\\\\\\\\\\\"]
    }
    cc3 {
    buildConfigField \\\\\\\\\\\\\\\"String\\\\\\\\\\\\\\\", \\\\\\\\\\\\\\\"DEBUG_CHANNEL\\\\\\\\\\\\\\\", rootProject.ext.channel[\\\\\\\\\\\\\\\"cc3\\\\\\\\\\\\\\\"]
    }
    cc4 {
    buildConfigField \\\\\\\\\\\\\\\"String\\\\\\\\\\\\\\\", \\\\\\\\\\\\\\\"DEBUG_CHANNEL\\\\\\\\\\\\\\\", rootProject.ext.channel[\\\\\\\\\\\\\\\"cc4\\\\\\\\\\\\\\\"]
    }
    }
    6.微信支付配置,注意微信登录及微信支付结果回调类WXEntryActivity和WXPayEntryActivity是在包名文件夹下的wxapi中,属于最外层的一级文件夹。

    7.关于友盟配置签名文件,在app模块下的build.gradle中配置应用的签名文件

    signingConfigs {
    debug {
    toreFile file(\\\\\\\\\\\\\\\'jks文件地址\\\\\\\\\\\\\\\')
    storePassword \\\\\\\\\\\\\\\"*********\\\\\\\\\\\\\\\"
    keyAlias \\\\\\\\\\\\\\\"*****\\\\\\\\\\\\\\\"
    keyPassword \\\\\\\\\\\\\\\"*********\\\\\\\\\\\\\\\"
    }
    release {
    storeFile file(\\\\\\\\\\\\\\\'jks文件地址\\\\\\\\\\\\\\\')
    storePassword \\\\\\\\\\\\\\\"*******\\\\\\\\\\\\\\\"
    keyAlias \\\\\\\\\\\\\\\"*****\\\\\\\\\\\\\\\"
    keyPassword \\\\\\\\\\\\\\\"**********\\\\\\\\\\\\\\\"
    }
    }

     

    C011摇钱树CMS免费开源小说APP系统带后端插图


    小白之家 » C011摇钱树CMS免费开源小说APP系统带后端

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    • 546会员总数(位)
    • 13599资源总数(个)
    • 96本周发布(个)
    • 0 今日发布(个)
    • 479稳定运行(天)

    提供最优质的资源集合

    立即查看 了解详情