inveno

inveno的公共类库


友盟

<h3>1、添加友盟仓库</h3> <p>在工程build.gradle配置脚本中buildscript和allprojects段中添加【友盟+】SDK新maven仓库地址。</p> <pre><code>buildscript { repositories { maven { url 'https://repo1.maven.org/maven2/' } } } allprojects { repositories { maven { url 'https://repo1.maven.org/maven2/' } } }</code></pre> <h3>2、添加依赖</h3> <pre><code>implementation 'com.inveno.library:umeng:1.0.8-SNAPSHOT' //如果需要用到微信分享模块,则需要添加以下依赖 implementation'com.tencent.mm.opensdk:wechat-sdk-android-without-mta:6.8.0'</code></pre> <h3>3、混淆</h3> <pre><code>#-----------------umeng start---------------------------- -keep class com.umeng.** {*;} #//您如果使用了稳定性模块可以加入该混淆 -keep class com.uc.** {*;} -keepclassmembers class * { public &lt;init&gt; (org.json.JSONObject); } -keepclassmembers enum * { public static **[] values(); public static ** valueOf(java.lang.String); } #//SDK 9.2.4及以上版本自带oaid采集模块,不再需要开发者再手动引用oaid库,所以可以不添加这些混淆 -keep class com.zui.** {*;} -keep class com.miui.** {*;} -keep class com.heytap.** {*;} -keep class a.** {*;} -keep class com.vivo.** {*;} #-----------------umeng end---------------------------- #-----------------分享start----------------- -dontshrink -dontoptimize -dontwarn com.google.android.maps.** -dontwarn com.squareup.okhttp.** -dontwarn android.webkit.WebView -dontwarn com.umeng.** -dontwarn com.tencent.weibo.sdk.** -dontwarn com.facebook.** -keep public class javax.** -keep public class android.webkit.** -dontwarn android.support.v4.** -keep enum com.facebook.** -keepattributes Exceptions,InnerClasses,Signature -keepattributes *Annotation* -keepattributes SourceFile,LineNumberTable -keepattributes EnclosingMethod -keep public interface com.facebook.** -keep public interface com.tencent.** -keep public interface com.umeng.socialize.** -keep public interface com.umeng.socialize.sensor.** -keep public interface com.umeng.scrshot.** -keep public class com.umeng.socialize.* {*;} -keep class com.umeng.commonsdk.statistics.common.MLog {*;} -keep class com.umeng.commonsdk.UMConfigure {*;} -keep class com.umeng.** {*;} -keep class com.umeng.** -keep class com.facebook.** -keep class com.facebook.** { *; } -keep class com.umeng.scrshot.** -keep public class com.tencent.** {*;} -keep class com.umeng.socialize.sensor.** -keep class com.umeng.socialize.handler.** -keep class com.umeng.socialize.handler.* -keep class com.umeng.weixin.handler.** -keep class com.umeng.weixin.handler.* -keep class com.umeng.qq.handler.** -keep class com.umeng.qq.handler.* -keep class UMMoreHandler{*;} -keep class com.tencent.mm.sdk.modelmsg.WXMediaMessage {*;} -keep class com.tencent.mm.sdk.modelmsg.** implements com.tencent.mm.sdk.modelmsg.WXMediaMessage$IMediaObject {*;} -keep class im.yixin.sdk.api.YXMessage {*;} -keep class im.yixin.sdk.api.** implements im.yixin.sdk.api.YXMessage$YXMessageData{*;} -keep class com.tencent.mm.sdk.** { *; } -keep class com.tencent.mm.opensdk.** { *; } -keep class com.tencent.wxop.** { *; } -keep class com.tencent.mm.sdk.** { *; } -dontwarn twitter4j.** -keep class twitter4j.** { *; } -keep class com.tencent.** {*;} -dontwarn com.tencent.** -keep class com.kakao.** {*;} -dontwarn com.kakao.** -keep public class com.umeng.com.umeng.soexample.R$*{ public static final int *; } -keep public class com.linkedin.android.mobilesdk.R$*{ public static final int *; } -keepclassmembers enum * { public static **[] values(); public static ** valueOf(java.lang.String); } -keep class com.tencent.open.TDialog$* -keep class com.tencent.open.TDialog$* {*;} -keep class com.tencent.open.PKDialog -keep class com.tencent.open.PKDialog {*;} -keep class com.tencent.open.PKDialog$* -keep class com.tencent.open.PKDialog$* {*;} -keep class com.umeng.socialize.impl.ImageImpl {*;} -keep class com.sina.** {*;} -dontwarn com.sina.** -keep class com.alipay.share.sdk.** { *; } -keepnames class * implements android.os.Parcelable { public static final ** CREATOR; } -keep class com.linkedin.** { *; } -keep class com.android.dingtalk.share.ddsharemodule.** { *; } -keepattributes Signature #-----------------分享end-----------------</code></pre> <h3>4、新建WXEntryActivity并继承WXCallbackActivity,放到&lt;包名&gt;.wxapi下(可选,微信分享模块)</h3> <pre><code>class WXEntryActivity : WXCallbackActivity() { }</code></pre> <h3>5、在清单文件注册微信回调activity(可选,微信分享模块)</h3> <pre><code>&lt;!--注册activity--&gt; &lt;manifest&gt; &lt;!--适配targetSDK &gt;= 30--&gt; &lt;queries&gt; &lt;package android:name="com.tencent.mm" /&gt; &lt;/queries&gt; &lt;application&gt; &lt;!--注册activity--&gt; &lt;activity android:name=".wxapi.WXEntryActivity" android:label="@string/app_name" android:theme="@android:style/Theme.Translucent.NoTitleBar" android:exported="true" android:taskAffinity="${applicationId}" android:launchMode="singleTask"/&gt; &lt;/application&gt; &lt;/manifest&gt;</code></pre> <h3>6、在application的onCreat方法初始化</h3> <pre><code>//预初始化友盟(官方要求) UMengManager.preInit(applicationContext,"appKey","channel") //初始化友盟(须获取到手机权限后再调用) UMengManager.init(applicationContext,"appKey","channel",isDebug) //配置微信参数(可选,微信分享模块) UMengManager.initWXConfig(applicationContext,"appId","screct")</code></pre> <h3>7、使用</h3> <pre><code>//获取oaid(异步) UMConfigure.getOaid(this){ it: String! oaid = it } //上报事件 val params = hashMapOf&lt;String,Any&gt;() UMengManager.onEvent("eventId",params) //获取微信信息(微信分享模块) UMShareHepler.requestWXUserInfo { it: UMShareHepler.Data -&gt; val accessToken = it.accessToken val openId = it.openId val nick = it.nick val headUrl = it.headUrl val unionId = it.unionId } //分享回调(微信分享模块) val listener = object : UMShareListener{ override fun onStart(p0: SHARE_MEDIA?) { } override fun onResult(p0: SHARE_MEDIA?) { } override fun onError(p0: SHARE_MEDIA?, p1: Throwable?) { } override fun onCancel(p0: SHARE_MEDIA?) { } } //分享纯文本(微信分享模块) UMShareHepler.shareText("text",listener) //分享图文(微信分享模块) val data = ...//可以是资源id、file、网络地址、bitmap等 val image = UMImage(context,data) UMShareHepler.shareTextWithImg("text",image,listener) //分享链接(微信分享模块) val title = "" //标题 val desc = "" //描述 val data = ...//略缩图资源,可以是资源id、file、网络地址、bitmap等 val thumb = UMImage(context,data) //略缩图 val url = "" //链接地址 UMShareHepler.shareUrl(title,desc,thumb,url,listener)</code></pre>

页面列表

ITEM_HTML