友盟分享详细记录!

本帖记录一下友盟分享的步骤!


首先我们要去第三方平台申请分享时显示应用的icon、名称和对应开放平台设置 必要需要创建应用的平台为:微信、新浪、QQ、Facebook、Kakao、Linkein、Twitter。

签名查看可以直接在Terminal中查看


输入keytool -v -list -keystoreC:\Users\Administrator\Desktop\debug.jks (红色部分为签名文件的路径)


MD5就是签名(微信平台设置签名记得把 :去掉)


友盟分享分为两个版本一个是精简版(比如微信不支持微信支付)一个是完整版的(支持微信支付),根据项目的需求选择不同的SDK下载。因为在项目中只用到了分享,所以我使用的是精简版的,本文以微信、QQ、新浪分享为例。SDK下载地址   http://mobile.umeng.com/social?spm=0.0.0.0.eCto0U


下载完成解压


第一种方式直接把platform下的src和jar全部复制到自己的项目中,第二种方式直接使用友盟提供的工具jar(推荐使用),直接双击umeng_integrate_tool.jar


选择我们需要的平台点击OK,生成资源文件

因为使用的是友盟提供的UI分享面板,需要把对应的资源文件和jar复制到项目中去,微信需要把包和类也复制到项目中去。


接下来在AndroidManifest中添加用的权限和Activity

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_LOGS" />
<uses-permission android:name="android.permission.CALL_PHONE" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.SET_DEBUG_APP" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.USE_CREDENTIALS" />
<uses-permission android:name="android.permission.MANAGE_ACCOUNTS" />
 
<!-- 微信 -->
<activity
    android:name=".wxapi.WXEntryActivity"
    android:configChanges="keyboardHidden|orientation|screenSize"
    android:exported="true"
    android:screenOrientation="portrait"
    android:theme="@android:style/Theme.Translucent.NoTitleBar" />
<!-- QQ -->
<activity
android:name="com.umeng.qq.tencent.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="tencent100424468" /> 
 </intent-filter>
</activity>
<!-- QQ -->
<activity 
 android:name="com.umeng.qq.tencent.AssistActivity"  
 android:configChanges="orientation|keyboardHidden|screenSize"  
 android:screenOrientation="portrait"   
 android:theme="@android:style/Theme.Translucent.NoTitleBar" />
<activity   
 android:name="com.umeng.socialize.editorpage.ShareActivity"   
 android:excludeFromRecents="true"  
 android:theme="@style/Theme.UMDefault" />
<!-- 友盟key -->
<meta-data  
 android:name="UMENG_APPKEY"   
 android:value="586c68055312dd78ab0008af" />
接下来就是代码了,在Application中添加各平台中申请到的key
//各个平台的配置,建议放在全局Application或者程序入口
{
    PlatformConfig.setWeixin("wxb31ed3a79dd2723b", "d1f8d1c022522db5a0eec3844b71ee44");
    PlatformConfig.setQQZone("100424468", "c7394704798a158208a74ab60104f0ba");
    //豆瓣RENREN平台目前只能在服务器端配置
    //新浪微博
   /* PlatformConfig.setSinaWeibo("3921700954", "04b48b094faeb16683c32669824ebdad");
    //易信
    PlatformConfig.setYixin("yxc0614e80c9304c11b0391514d09f13bf");
    PlatformConfig.setTwitter("3aIN7fuF685MuZ7jtXkQxalyi", "MK6FEYG63eWcpDFgRYw4w9puJhzDl0tyuqWjZ3M7XJuuG7mMbO");
    PlatformConfig.setAlipay("2015111700822536");
    PlatformConfig.setLaiwang("laiwangd497e70d4", "d497e70d4c3e4efeab1381476bac4c5e");
    PlatformConfig.setPinterest("1439206");
    PlatformConfig.setKakao("e4f60e065048eb031e235c806b31c70f");
    PlatformConfig.setDing("dingoalmlnohc0wggfedpk");
    PlatformConfig.setVKontakte("5764965","5My6SNliAaLxEm3Lyd9J");
    PlatformConfig.setDropbox("oz8v5apet3arcdy","h7p2pjbzkkxt02a");*/
}

初始化友盟和开启日志模式
@Override
public void onCreate() {
    super.onCreate();
    UMShareAPI.get(this);
    /*开启debug模式,方便定位错误,具体错误检查方式可以查看
    http://dev.umeng.com/social/android/quick-integration的报错必看,正式发布,请关闭该模式*/
    Config.DEBUG = true;
}
在需要分享的页面中添加onActivityResult。
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    /** attention to this below ,must add this**/
    UMShareAPI.get(this).onActivityResult(requestCode, resultCode, data);
}

在使用shareaction的时候,调用withMedia可以设置一个UMImage,也就是分享图片,分享图片的构建有如下几种形式
UMImage image = new UMImage(MainActivity.this, "imageurl");//网络图片
UMImage image = new UMImage(MainActivity.this, file);//本地文件
UMImage image = new UMImage(MainActivity.this, R.drawable.xxx);//资源文件
UMImage image = new UMImage(MainActivity.this, bitmap);//bitmap文件
UMImage image = new UMImage(MainActivity.this, byte[]);//字节流

推荐使用网络图片和资源文件的方式,平台兼容性更高。 对于微信QQ的那个平台,分享的图片需要设置缩略图,缩略图的设置规则为
UMImage image =  new UMImage(this, R.drawable.image);
image.setThumb(image);

分享回调
private UMShareListener umShareListener = new UMShareListener() {
    @Override
    public void onResult(SHARE_MEDIA platform) {
        Log.d("plat", "platform" + platform);
        Toast.makeText(MainActivity.this, "分享成功", Toast.LENGTH_SHORT).show();
    }
    @Override
    public void onError(SHARE_MEDIA platform, Throwable t) {
        Toast.makeText(MainActivity.this, "分享失败", Toast.LENGTH_SHORT).show();
        if (t != null) {
            Log.d("throw", "throw:" + t.getMessage());
        }
    }
    @Override
    public void onCancel(SHARE_MEDIA platform) {
        Toast.makeText(MainActivity.this, "分享取消", Toast.LENGTH_SHORT).show();
    }
};

此方法就是打开分享面板
new ShareAction(MainActivity.this).withMedia(image).withText("内容").withTitle("标题").withTargetUrl("http://www.baidu.com")
        .setDisplayList(SHARE_MEDIA.WEIXIN, SHARE_MEDIA.WEIXIN_CIRCLE,SHARE_MEDIA.QQ,SHARE_MEDIA.QZONE,SHARE_MEDIA.SINA
).setCallback(umShareListener).open();


效果图

友盟的分享面板确实不怎么好看,不喜欢的可以自定义。
第一次运行的时候发现微信分享失败,日志一直提示签名不正确,但是签名和后台的是一致的,问了客服,也查了资料发现还是不好使
最后重启手机,分享成功。

	博客会持续更新和记录在项目中所遇到问题,大家多多支持!!!奋斗
要在Flutter中使用友盟分享,首先需要在项目中添加友盟分享的插件。可以使用flutter_umeng_share插件,它提供了友盟分享的各种功能。 1. 在pubspec.yaml文件中添加依赖: ``` dependencies: flutter_umeng_share: ^2.0.0 ``` 2. 在项目中集成友盟分享SDK: 在Flutter项目的MainActivity.java文件中,添加以下代码: ``` import com.umeng.socialize.UMShareAPI; public class MainActivity extends FlutterActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); GeneratedPluginRegistrant.registerWith(this); UMShareAPI.get(this);//添加这一行 } } ``` 3. 初始化友盟分享SDK: 在项目中的main.dart文件中,添加以下代码: ``` import 'package:flutter_umeng_share/flutter_umeng_share.dart'; void main() async { WidgetsFlutterBinding.ensureInitialized(); await FlutterUmengShare.init( androidKey: 'your_umeng_android_app_key', iosKey: 'your_umeng_ios_app_key'); runApp(MyApp()); } ``` 其中,'your_umeng_android_app_key'和'your_umeng_ios_app_key'需要替换为你自己的友盟App Key。 4. 使用友盟分享: ``` import 'package:flutter_umeng_share/flutter_umeng_share.dart'; //分享文本 FlutterUmengShare.shareText('This is a test.'); //分享图片 FlutterUmengShare.shareImage(imagePath: 'image_path', text: 'This is a test.'); //分享链接 FlutterUmengShare.shareWeb( url: 'https://www.example.com', title: 'This is a test.', description: 'This is a test.', thumb: 'thumb_image_path'); ``` 以上就是在Flutter中使用友盟分享的基本步骤。你可以根据自己的需求,选择更多的分享方式,例如分享音乐、视频等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值