feat:移除LinkedMe-SDK 改用MobLink(简单同步Peko,未测试验证)
This commit is contained in:
@@ -431,8 +431,8 @@
|
||||
|
||||
<!-- 此处scheme值需要替换为后台设置中的scheme值 -->
|
||||
<data
|
||||
android:host="linkedme"
|
||||
android:scheme="yinmengnnbc" />
|
||||
android:host="main"
|
||||
android:scheme="yinmapp" />
|
||||
|
||||
<action android:name="android.intent.action.VIEW" />
|
||||
|
||||
@@ -498,14 +498,6 @@
|
||||
android:name="com.nnbc123.app.ui.keepalive.OnePiexlActivity"
|
||||
android:screenOrientation="portrait"
|
||||
android:theme="@style/OnePixelActivity" />
|
||||
<activity
|
||||
android:name="com.nnbc123.app.MiddleActivity"
|
||||
android:noHistory="true"
|
||||
android:screenOrientation="portrait">
|
||||
<meta-data
|
||||
android:name="linkedme.sdk.auto_link_keys"
|
||||
android:value="linkedme" />
|
||||
</activity>
|
||||
<activity
|
||||
android:name="com.nnbc123.app.NimMiddleActivity"
|
||||
android:noHistory="true"
|
||||
@@ -1244,6 +1236,9 @@
|
||||
android:exported="false"
|
||||
android:screenOrientation="portrait"
|
||||
android:theme="@style/AppThemeUCrop" />
|
||||
<activity
|
||||
android:name=".AgentActivity"
|
||||
android:theme="@android:style/Theme.Translucent.NoTitleBar" />
|
||||
</application>
|
||||
|
||||
</manifest>
|
120
app/src/main/java/com/nnbc123/app/AgentActivity.java
Normal file
120
app/src/main/java/com/nnbc123/app/AgentActivity.java
Normal file
@@ -0,0 +1,120 @@
|
||||
package com.nnbc123.app;
|
||||
|
||||
import android.app.ActivityManager;
|
||||
import android.content.ComponentName;
|
||||
import android.content.Intent;
|
||||
import android.os.Build;
|
||||
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
|
||||
import com.mob.moblink.MobLink;
|
||||
import com.mob.moblink.Scene;
|
||||
import com.mob.moblink.SceneRestorable;
|
||||
import com.netease.nim.uikit.common.util.log.LogUtil;
|
||||
import com.nnbc123.app.other.activity.SplashActivity;
|
||||
import com.nnbc123.core.linked.LinkedModel;
|
||||
import com.nnbc123.core.linked.bean.LinkedInfo;
|
||||
import com.nnbc123.core.user.UserModel;
|
||||
import com.nnbc123.core.utils.TextUtils;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
public class AgentActivity extends AppCompatActivity implements SceneRestorable {
|
||||
|
||||
|
||||
protected void onNewIntent(Intent intent) {
|
||||
super.onNewIntent(intent);
|
||||
setIntent(intent);
|
||||
MobLink.updateNewIntent(getIntent(), this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onReturnSceneData(Scene scene) {
|
||||
|
||||
try {
|
||||
HashMap<String, Object> hashMap = scene.getParams();
|
||||
|
||||
LogUtil.print("linkedme", hashMap);
|
||||
//根据key获取传入的参数的值,该key关键字View可为任意值,由集成方规定,请与web端商议,一致即可
|
||||
LinkedInfo linkedInfo = new LinkedInfo();
|
||||
String roomuid = (String) hashMap.get("roomuid");
|
||||
String uid = (String) hashMap.get("uid");
|
||||
String type = String.valueOf(hashMap.get("type"));
|
||||
String familyId = (String) hashMap.get("familyId");
|
||||
String url = (String) hashMap.get("url");
|
||||
String worldId = (String) hashMap.get("worldId");
|
||||
String dynamicId = (String) hashMap.get("dynamicId");
|
||||
String inviteCode = (String) hashMap.get("inviteCode");
|
||||
if (roomuid != null) {
|
||||
linkedInfo.setRoomUid(roomuid);
|
||||
}
|
||||
if (TextUtils.isEmptyText(roomuid) && uid != null) {
|
||||
linkedInfo.setRoomUid(uid);
|
||||
}
|
||||
if (uid != null) {
|
||||
linkedInfo.setUid(uid);
|
||||
}
|
||||
linkedInfo.setType(type);
|
||||
if (familyId != null) {
|
||||
linkedInfo.setFamilyId(familyId);
|
||||
}
|
||||
if (url != null) {
|
||||
linkedInfo.setUrl(url);
|
||||
}
|
||||
if (worldId != null) {
|
||||
linkedInfo.setWorldId(worldId);
|
||||
}
|
||||
if (dynamicId != null) {
|
||||
linkedInfo.setDynamicId(dynamicId);
|
||||
}
|
||||
|
||||
linkedInfo.setInviteCode(inviteCode);
|
||||
|
||||
LinkedModel.get().setLinkedInfo(linkedInfo);
|
||||
|
||||
} catch (Exception e) {
|
||||
}
|
||||
|
||||
|
||||
if (isExistMainActivity(MainActivity.class) && UserModel.get().getCacheLoginUserInfo() != null) {//应用已开启&用户信息以获取
|
||||
MainActivity.handleLinkedJump(this);
|
||||
} else {//应用未开启
|
||||
SplashActivity.start(this);
|
||||
}
|
||||
finish();
|
||||
}
|
||||
|
||||
public boolean isExistMainActivity(Class<?> activity) {
|
||||
try {
|
||||
Intent intent = new Intent(this, activity);
|
||||
ComponentName cmpName = intent.resolveActivity(getPackageManager());
|
||||
boolean flag = false;
|
||||
if (cmpName != null) {
|
||||
ActivityManager am = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
||||
List<ActivityManager.AppTask> taskInfoList = am.getAppTasks();
|
||||
for (ActivityManager.AppTask taskInfo : taskInfoList) {
|
||||
if (taskInfo.getTaskInfo().baseActivity.equals(cmpName)) {
|
||||
flag = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
List<ActivityManager.RunningTaskInfo> taskInfoList = am.getRunningTasks(10);
|
||||
for (ActivityManager.RunningTaskInfo taskInfo : taskInfoList) {
|
||||
if (taskInfo.baseActivity.equals(cmpName)) {
|
||||
flag = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
return flag;
|
||||
} catch (Throwable e) {
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
@@ -299,7 +299,7 @@ public class MainActivity extends BaseMvpActivity<IMainView, MainPresenter>
|
||||
//这里是为了处理APP后台运行的情况下点击分享房间等LinkedMe链接的情况
|
||||
UserInfo userInfo = UserModel.get().getCacheLoginUserInfo();
|
||||
if (userInfo != null) {
|
||||
handleLinkedJump();
|
||||
handleLinkedJump(this);
|
||||
if (userInfo.isShowLimitCharge() &&
|
||||
PmDialogShowMrg.get().isHasShow() &&
|
||||
DemoCache.readNewUserChargeGift() == 1) {
|
||||
@@ -685,7 +685,7 @@ public class MainActivity extends BaseMvpActivity<IMainView, MainPresenter>
|
||||
|
||||
if (UserUtils.isPmMode()) return;
|
||||
if (handleSplashJump()) return;
|
||||
if (handleLinkedJump()) return;
|
||||
if (handleLinkedJump(this)) return;
|
||||
|
||||
//渠道落地页和邀请码跳转只需要完善资料后处理一次
|
||||
String spKey = KEY_FLAG_VALID_CHANNEL_PAGE + AuthModel.get().getCurrentUid();
|
||||
@@ -776,7 +776,7 @@ public class MainActivity extends BaseMvpActivity<IMainView, MainPresenter>
|
||||
/**
|
||||
* @return true 如果处理了跳转
|
||||
*/
|
||||
public boolean handleLinkedJump() {
|
||||
public static boolean handleLinkedJump(Context context) {
|
||||
LinkedInfo linkedInfo = LinkedModel.get().getLinkedInfo();
|
||||
LinkedModel.get().setLinkedInfo(null);
|
||||
|
||||
@@ -786,9 +786,9 @@ public class MainActivity extends BaseMvpActivity<IMainView, MainPresenter>
|
||||
LogUtil.print("linkedme跳转");
|
||||
// 跳转
|
||||
if (!StringUtil.isEmpty(linkedInfo.getRoomUid()) && linkedInfo.getType().equals("2")) {
|
||||
AVRoomActivity.start(this, Long.parseLong(linkedInfo.getRoomUid()));
|
||||
AVRoomActivity.start(context, Long.parseLong(linkedInfo.getRoomUid()));
|
||||
} else if (!StringUtil.isEmpty(linkedInfo.getFamilyId()) && linkedInfo.getType().equals("4")) {
|
||||
FamilyHomeActivity.start(this, linkedInfo.getFamilyId());
|
||||
FamilyHomeActivity.start(context, linkedInfo.getFamilyId());
|
||||
} else if (!TextUtils.isEmpty(linkedInfo.getUrl()) && linkedInfo.getType().equals("3")) {
|
||||
CommonWebViewActivity.start(context, UriProvider.getLinkUrl(linkedInfo.getUrl()));
|
||||
} else if (!TextUtils.isEmpty(linkedInfo.getWorldId()) && linkedInfo.getType().equals("5")) {
|
||||
|
@@ -1,77 +0,0 @@
|
||||
package com.nnbc123.app;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.util.Log;
|
||||
|
||||
import com.microquation.linkedme.android.LinkedME;
|
||||
import com.microquation.linkedme.android.util.LinkProperties;
|
||||
import com.netease.nim.uikit.common.util.log.LogUtil;
|
||||
import com.nnbc123.app.base.BaseActivity;
|
||||
import com.nnbc123.core.linked.LinkedModel;
|
||||
import com.nnbc123.core.linked.bean.LinkedInfo;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
||||
/**
|
||||
* Created by chenran on 2017/8/5.
|
||||
*/
|
||||
|
||||
public class MiddleActivity extends BaseActivity {
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
if (getIntent() != null) {
|
||||
//获取与深度链接相关的值
|
||||
LinkProperties linkProperties = getIntent().getParcelableExtra(LinkedME.LM_LINKPROPERTIES);
|
||||
if (linkProperties != null) {
|
||||
Log.i("LinkedME-Demo", "Channel " + linkProperties.getChannel());
|
||||
Log.i("LinkedME-Demo", "control params " + linkProperties.getControlParams());
|
||||
Log.i("LinkedME-Demo", "link(深度链接) " + linkProperties.getLMLink());
|
||||
Log.i("LinkedME-Demo", "是否为新安装 " + linkProperties.isLMNewUser());
|
||||
//获取自定义参数封装成的hashmap对象,参数键值对由集成方定义
|
||||
|
||||
HashMap<String, String> hashMap = linkProperties.getControlParams();
|
||||
LogUtil.print("linkedme", hashMap);
|
||||
//根据key获取传入的参数的值,该key关键字View可为任意值,由集成方规定,请与web端商议,一致即可
|
||||
LinkedInfo linkedInfo = new LinkedInfo();
|
||||
linkedInfo.setNewUser(linkProperties.isLMNewUser());
|
||||
String roomuid = hashMap.get("roomuid");
|
||||
String uid = hashMap.get("uid");
|
||||
String channel = hashMap.get("linkedmeChannel");
|
||||
String type = hashMap.get("type");
|
||||
String familyId = hashMap.get("familyId");
|
||||
String url = hashMap.get("url");
|
||||
String worldId = hashMap.get("worldId");
|
||||
String dynamicId = hashMap.get("dynamicId");
|
||||
String inviteCode = hashMap.get("inviteCode");
|
||||
if (roomuid != null) {
|
||||
linkedInfo.setRoomUid(roomuid);
|
||||
}
|
||||
if (uid != null) {
|
||||
linkedInfo.setUid(uid);
|
||||
}
|
||||
if (type != null) {
|
||||
linkedInfo.setType(type);
|
||||
}
|
||||
if (familyId != null) {
|
||||
linkedInfo.setFamilyId(familyId);
|
||||
}
|
||||
if (url != null) {
|
||||
linkedInfo.setUrl(url);
|
||||
}
|
||||
if (worldId != null) {
|
||||
linkedInfo.setWorldId(worldId);
|
||||
}
|
||||
if (dynamicId != null) {
|
||||
linkedInfo.setDynamicId(dynamicId);
|
||||
}
|
||||
|
||||
linkedInfo.setInviteCode(inviteCode);
|
||||
|
||||
LinkedModel.get().setLinkedInfo(linkedInfo);
|
||||
}
|
||||
}
|
||||
finish();
|
||||
}
|
||||
}
|
@@ -14,6 +14,7 @@ import static com.nnbc123.core.im.custom.bean.CustomAttachment.CUSTOM_MSG_HEADER
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
import android.annotation.TargetApi;
|
||||
import android.app.Activity;
|
||||
import android.app.Application;
|
||||
import android.content.Context;
|
||||
import android.graphics.Color;
|
||||
@@ -35,8 +36,10 @@ import com.heytap.msp.push.HeytapPushManager;
|
||||
import com.hjq.toast.ToastUtils;
|
||||
import com.huawei.hms.support.common.ActivityMgr;
|
||||
import com.llew.huawei.verifier.LoadedApkHuaWei;
|
||||
import com.microquation.linkedme.android.LinkedME;
|
||||
import com.mob.MobSDK;
|
||||
import com.mob.moblink.MobLink;
|
||||
import com.mob.moblink.RestoreSceneListener;
|
||||
import com.mob.moblink.Scene;
|
||||
import com.netease.nim.uikit.api.NimUIKit;
|
||||
import com.netease.nim.uikit.common.util.log.LogUtil;
|
||||
import com.netease.nimlib.sdk.NIMClient;
|
||||
@@ -49,6 +52,7 @@ import com.netease.nimlib.sdk.msg.MessageNotifierCustomization;
|
||||
import com.netease.nimlib.sdk.msg.constant.MsgTypeEnum;
|
||||
import com.netease.nimlib.sdk.msg.model.IMMessage;
|
||||
import com.netease.nimlib.sdk.util.NIMUtil;
|
||||
import com.nnbc123.app.AgentActivity;
|
||||
import com.nnbc123.app.qiyukefu.CustomerServerHelper;
|
||||
import com.nnbc123.library.common.application.BaseApp;
|
||||
import com.nnbc123.library.common.file.FileHelper;
|
||||
@@ -66,7 +70,6 @@ import com.umeng.analytics.MobclickAgent;
|
||||
import com.umeng.commonsdk.UMConfigure;
|
||||
import com.nnbc123.app.BuildConfig;
|
||||
import com.nnbc123.app.MainActivity;
|
||||
import com.nnbc123.app.MiddleActivity;
|
||||
import com.nnbc123.app.NimMiddleActivity;
|
||||
import com.nnbc123.app.R;
|
||||
import com.nnbc123.app.module_hall.HallDataManager;
|
||||
@@ -292,7 +295,6 @@ public class XChatApplication extends BaseApp {
|
||||
registerActivityLifecycleCallback(lifeManager);
|
||||
dealHuaWeiCrash();
|
||||
initLinkedMe();
|
||||
LinkedME.getInstance().setImmediate(true);
|
||||
MobSDK.init(context);
|
||||
MobSDK.submitPolicyGrantResult(true);
|
||||
// 友盟统计初始化
|
||||
@@ -319,15 +321,21 @@ public class XChatApplication extends BaseApp {
|
||||
* 初始化linkedMe
|
||||
*/
|
||||
private static void initLinkedMe() {
|
||||
LinkedME.getInstance(instance, XChatConstants.LINKED_ME_KEY);
|
||||
if (isDebug()) {
|
||||
//设置debug模式下打印LinkedME日志
|
||||
LinkedME.getInstance().setDebug();
|
||||
}
|
||||
//初始时请设置为false
|
||||
LinkedME.getInstance().setImmediate(false);
|
||||
//设置处理跳转逻辑的中转页,MiddleActivity详见后续配置
|
||||
LinkedME.getInstance().setHandleActivity(MiddleActivity.class.getName());
|
||||
MobSDK.init(instance, "36b91eeac7469", "63ec0702513aca17e20615dd5dfdc03f");
|
||||
MobLink.setRestoreSceneListener(new RestoreSceneListener() {
|
||||
@Override
|
||||
public Class<? extends Activity> willRestoreScene(Scene scene) {
|
||||
return AgentActivity.class;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void completeRestore(Scene scene) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void notFoundScene(Scene scene) {
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private static void initEnv() {
|
||||
|
@@ -45,7 +45,7 @@ import com.netease.nim.uikit.common.util.log.LogUtil;
|
||||
import com.netease.nimlib.sdk.NIMSDK;
|
||||
import com.netease.nimlib.sdk.Observer;
|
||||
import com.netease.nimlib.sdk.msg.model.BroadcastMessage;
|
||||
import com.nnbc123.app.MiddleActivity;
|
||||
import com.nnbc123.app.AgentActivity;
|
||||
import com.nnbc123.app.NimMiddleActivity;
|
||||
import com.nnbc123.app.R;
|
||||
import com.nnbc123.app.application.XChatApplication;
|
||||
@@ -987,7 +987,7 @@ public abstract class BaseActivity extends RxAppCompatActivity
|
||||
acts.add(LoginCodeActivity.class);
|
||||
acts.add(ResetPasswordActivity.class);
|
||||
acts.add(AddUserInfoActivity.class);
|
||||
acts.add(MiddleActivity.class);
|
||||
acts.add(AgentActivity.class);
|
||||
acts.add(NimMiddleActivity.class);
|
||||
|
||||
for (Class act : acts) {
|
||||
|
@@ -1,6 +1,7 @@
|
||||
package com.nnbc123.app.other.activity;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import android.text.TextUtils;
|
||||
@@ -41,6 +42,11 @@ public class SplashActivity extends AppCompatActivity implements View.OnClickLis
|
||||
|
||||
private volatile boolean needJump = false;
|
||||
|
||||
public static void start(Context context) {
|
||||
Intent starter = new Intent(context, SplashActivity.class);
|
||||
context.startActivity(starter);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
|
@@ -3,7 +3,7 @@ package com.nnbc123.app.utils;
|
||||
import android.content.Context;
|
||||
|
||||
import com.netease.nim.uikit.common.util.log.LogUtil;
|
||||
import com.nnbc123.app.MiddleActivity;
|
||||
import com.nnbc123.app.AgentActivity;
|
||||
import com.nnbc123.app.NimMiddleActivity;
|
||||
import com.nnbc123.app.other.activity.SplashActivity;
|
||||
import com.nnbc123.core.pay.PaymentActivity;
|
||||
@@ -26,7 +26,7 @@ public class ActWhiteListMrg {
|
||||
return true;
|
||||
}
|
||||
List<Class> acts = new ArrayList<>();
|
||||
acts.add(MiddleActivity.class);
|
||||
acts.add(AgentActivity.class);
|
||||
acts.add(NimMiddleActivity.class);
|
||||
acts.add(PaymentActivity.class);
|
||||
acts.add(SplashActivity.class);
|
||||
|
@@ -6,7 +6,7 @@ import android.content.Intent
|
||||
import android.content.pm.PackageManager
|
||||
import android.net.Uri
|
||||
import android.os.Build
|
||||
import com.microquation.linkedme.android.v4.ContextCompatLKMe
|
||||
import androidx.core.content.ContextCompat
|
||||
import com.nnbc123.app.BuildConfig
|
||||
import com.nnbc123.app.ui.setting.bean.PermissionEntity
|
||||
import java.lang.Exception
|
||||
@@ -27,7 +27,7 @@ class PermissionUtil {
|
||||
it
|
||||
} else {
|
||||
it.filter { s ->
|
||||
ContextCompatLKMe.checkSelfPermission(context, s) ==
|
||||
ContextCompat.checkSelfPermission(context, s) ==
|
||||
PackageManager.PERMISSION_GRANTED
|
||||
}
|
||||
}
|
||||
|
@@ -9,13 +9,13 @@ buildscript {
|
||||
println "\n\n\n"
|
||||
|
||||
repositories {
|
||||
maven { url 'https://maven.aliyun.com/repository/public' }
|
||||
maven { url 'https://jitpack.io' }
|
||||
google()
|
||||
mavenCentral()
|
||||
maven {url 'https://developer.huawei.com/repo/'}
|
||||
maven { url "https://mvn.mob.com/android" }
|
||||
maven { url 'https://repo1.maven.org/maven2/' }
|
||||
maven { url 'https://maven.aliyun.com/repository/public' }
|
||||
}
|
||||
|
||||
dependencies {
|
||||
@@ -35,11 +35,11 @@ allprojects {
|
||||
repositories {
|
||||
google()
|
||||
mavenCentral()
|
||||
maven { url 'https://maven.aliyun.com/repository/public' }
|
||||
maven { url 'https://jitpack.io' }
|
||||
maven { url "https://mvn.mob.com/android" }
|
||||
maven { url 'https://repo1.maven.org/maven2/' }
|
||||
maven { url 'https://developer.huawei.com/repo/' }
|
||||
maven { url 'https://maven.aliyun.com/repository/public' }
|
||||
}
|
||||
//网络慢的话就去 https://maven.aliyun.com/mvn/view 里面找个代理的仓库。
|
||||
}
|
||||
|
Binary file not shown.
@@ -68,11 +68,6 @@ public class XChatConstants {
|
||||
*/
|
||||
public static final String UMENG_APP_KEY = "6537793158a9eb5b0af4dc85";
|
||||
|
||||
/**
|
||||
* linkedMe key
|
||||
*/
|
||||
public static final String LINKED_ME_KEY = "4e75ead0ff84424339dc8b0616e7094c";
|
||||
|
||||
/**
|
||||
* 公屏第一条提示消息
|
||||
*/
|
||||
|
@@ -3,7 +3,11 @@ apply plugin: 'com.mob.sdk'
|
||||
MobSDK {
|
||||
appKey "37a065a03f499"
|
||||
appSecret "6e211fcc6f586b9a9e01f02aeaecb757"
|
||||
|
||||
appBundleMode true
|
||||
MobLink {
|
||||
uriScheme "yinmapp://sharesdk"
|
||||
appLinkHost "xxx.xx.cn"
|
||||
}
|
||||
ShareSDK {
|
||||
//平台配置信息
|
||||
gui false
|
||||
|
7
tmpmob/assets/ShareSDK.xml
Normal file
7
tmpmob/assets/ShareSDK.xml
Normal file
@@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<DevInfor>
|
||||
<Wechat AppId="wx4b772d5ebc964a38" AppSecret="f045979c311e13725cbb9aa87c265668" />
|
||||
<WechatMoments AppId="wx4b772d5ebc964a38" AppSecret="f045979c311e13725cbb9aa87c265668" />
|
||||
<QQ AppId="102044928" AppKey="12u585rSsAHEzc4K" ShareByAppClient="true" />
|
||||
<QZone AppId="102044928" AppKey="12u585rSsAHEzc4K" ShareByAppClient="true" />
|
||||
</DevInfor>
|
Reference in New Issue
Block a user