- 针对问题:
Build was configured to prefer repositories over project repositori settings
。针对最新版本的Android Studio 无法添加MobSDK
插件问题。官方文档未及时更新,需要的小伙伴可参考此文章。
ShareSDK流程图
开发步骤
-
-
身份认证:
选择个体开发者
-
-
集成配置:
- 在项目Gradle文件中注册
MobSDK
- 在项目Gradle文件中注册
buildscript {
repositories {
...
// 添加Mob Maven地址
maven {url "http://mvn.mob.com/android"}
}
dependencies {
// 注册MobSDK
classpath "com.mob.sdk:MobSDK:+"
}
}
在settings.gradle
中同样添加Mob Maven
地址,并修改RepositoriesMode
的模式。
dependencyResolutionManagement {
//repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositoriesMode.set(RepositoriesMode.PREFER_SETTINGS)
repositories {
google()
mavenCentral()
jcenter() // Warning: this repository is going to shut down soona
maven {
url "https://mvn.mob.com/android"
}
}
}
- 在项目App Module的Gradle文件中添加插件和扩展
- 添加插件:不同原来方式,在build.gradle中直接书写。而是在plugins中已添加:
- 添加拓展:需要自己到各个平台注册。
MobSDK {
appKey "替换为mob官方申请的appkey"
appSecret "替换为mob官方申请的appkey对应的appSecret"
ShareSDK {
loopShare true
devInfo {
SinaWeibo {
appKey "568898243"
appSecret "38a4f8204cc784f81f9f0daaf31e02e3"
callbackUri "http://www.sharesdk.cn"
}
Wechat {
appId "wx4868b35061f87885"
appSecret "64020361b8ec4c99936c0e3999a9f249"
userName "gh_afb25ac019c9"
path "pages/index/index.html?id=1"
withShareTicket true
miniprogramType 2
}
QQ {
appId "100371282"
appKey "aed9b0303e3ed1e27bae87c33761161d"
}
Facebook {
appKey "1412473428822331"
appSecret "a42f4f3f867dc947b9ed6020c2e93558"
callbackUri "https://mob.com"
}
Twitter {
appKey "LRBM0H75rWrU9gNHvlEAA2aOy"
appSecret "gbeWsZvA9ELJSdoBzJ5oLKX0TU09UOwrzdGfo9Tg7DjyGuMe8G"
callbackUri "http://mob.com"
}
Douyin {
appKey "aw9ivykfjvi4hpwo"
appSecret "42b4caa6bda60bd49f05f06d0a4956e1"
}
}
}
}
- 在
gradle.properties
中添加代码:
MobSDK.spEdition=FP
- API 接口和实现:回传用户隐私授权结构,必须在使用SDK之前调用。
- 实现代码:
MobSDK.submitPolicyGrantResult(true, null);
shareSDKButton = (Button) findViewById(R.id.share_button);
shareSDKButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
/**
* 用于一键分享
*/
OnekeyShare oks = new OnekeyShare();
// title标题,微信、QQ和QQ空间等平台使用
oks.setTitle("Damon");
// titleUrl QQ和QQ空间跳转链接
oks.setTitleUrl("http://sharesdk.cn");
// text是分享文本,所有平台都需要这个字段
oks.setText("hhhhhhhhh");
// setImageUrl是网络图片的url
oks.setImageUrl(webImageURL);
// url在微信、Facebook等平台中使用
oks.setUrl("http://sharesdk.cn");
// 启动分享GUI
oks.show(MobSDK.getContext());
}
});
- 实现效果图:
- 针对各个app的appID需要单独注册。