当前位置: 首页 > 工具软件 > 友推 > 使用案例 >

友推SDK微信分享问题

司徒瀚
2023-12-01

     发现用友推sdk,做其他平台分享很快;如新浪微博、腾讯微博、微信朋友圈等等,几句代码就搞定;  但是微信有点麻烦,下面我把如何解决问题说一下,方便其他开发者参考。

      一般微信分享问题都是点击分享了没反应,遇到这种情况一般都是微信需要验证应用签名,所以要使用分享的话需要先在微信开发者平台配置应用签名.如果不知道自己应用签名是多少,可以在微信开发者平台的资源中心-资源下载-Android资源下载里面下载签名生成工具,然后使用该工具查看自己的应用签名,然后在管理中心-修改应用中设置应用的签名.

集成友推SDK,做微信分享时,要先确定几个流程是否有问题。

.配置各分享平台key,该配置文件为youtui_sdk.xml,配置完放入工程的assets文件夹。

2.如果需要分享到哪个平台就将该平台的Enable属性设置为true.

3.如果需要将某个平台排列到前面,只需要改变它在youtui_sdk.xml文件中的位置即可。*/

<?xml version="1.0"encoding="utf-8"?>
<KeyInfo>
<!-- 分享平台的注册信息,一定要填入在相应平台注册的正确信息,不然应用无法完成授权,  也无法进行分享,enable填写true或者false属性决定是否分享该平台-->
<!-- 友推sdk注册地址 : http://youtui.mobi/ -->
<YouTui AppKey=""/>

<!-- 微信和朋友圈注册:https://open.weixin.qq.com/ -->
<Wechat AppId=""Enable=""/>
<WechatMoments AppId=""Enable=""/>

5.注册权限

/*在AndroidManifest.xml 注册权限*/
<!-- 检测网络状态 -->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

<!-- 获取mac地址作为用户的备用唯一标识 -->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>

<!-- 获取用户手机的IMEI,用来唯一的标识用户。 -->
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>

<!-- 写入SDcard权限 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

<!--打开关闭sd卡权限--!>
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>

<!--网络权限--!>
<uses-permission android:name="android.permission.INTERNET"/>

<!-- 用于读取sd卡图片 -->
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>

   6. 在 AndroidManifest.xml 注册需要的Activity

<!-- 微信分享需要注册该activity -->
<activity
android:name=".wxapi.WXEntryActivity"
android:exported="true"
android:launchMode="singleTask"
android:theme="@android :style/Theme.Translucent">
</activity>


7.微信和朋友圈回调设置
需建一个 应用包名+ .wxapi 的包,在该包下建 WXEntryActivity.java,将该类继承cn.bidaround.youtui.wxapi.WXEntryActivity即可(里面不用写代码)*/

publicclassWXEntryActivityextendscn.bidaround.youtui.wxapi.WXEntryActivity {
}


8.初始化友推
程序开始,最好是在MainActivity的onCreate方法调用YtTemplate.init(this)初始化友推sdk,这样友推sdk才能进行后续调用(否则分享等操作会出现空指针异常),例如:*/

protectedvoidonCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    YtTemplate.init(this);/*初始化友推*/
    initView();
}
/*应用退出时:

在您项目的出口Activity的 onDestroy 方法的第一行插入下面的代码 YtTemplate.release(this); 此方法用于释放内存,统计用户使用情况,一旦调用了release,就必须重新调用init才能使用友推的功能,否则会出现空指针异常;*/
9 创建ShareData实例
调用该实例的set方法设置自己需要分享的数据,关于该实例具体内容见下文,如果只是分享应用则只需要设置 setIsAppShare(true) 就可以分享应用在友推后台填写的信息和下载链接。

ShareData 包含的字段:

       "isAppShare"
       "text"
       "imagePath"
       "imageUrl"
       "description"
       "title"
       "target_url"

/*判断是否为分享应用
待分享的文字,短信要小于70个字符,微博要小于140个字符,如果需要分享链接,最好将链接url放在最后
待分享的本地图片地址,分享图片的话需要在本地和网络图片中选一,如果都有则优先分享本地图片
待分享网络图片url,分享图片的话需要在本地和网络图片中选一,如果都有则优先分享本地图片
待分享内容的描述
待分享内容的标题
待分享内容的跳转链接*/

通过创建该类实例,调用实例的set方法设置这些参数,例如:

ShareData shareData =newShareData();

shareData.isAppShare =false;/*设置为true则分享的信息从友推后台填写的应用信息中读取,可动态更新,后面的值不用设置。*/

shareData.setDescription("友推积分组件");

shareData.setTitle("友推分享");

shareData.setText("通过友推积分组件,开发者几行代码就可以为应用添加分享送积分功能,并提供详尽的

后台统计数据,除了本身具备的分享功能外,开发者也可将积分功能单独集成在已有分享组件的app上,快来试

试吧 http://youtui.mobi");

shareData.setTarget_url("http://youtui.mobi");

shareData.setImageUrl("http://youtui.mobi/media/image/youtui.png");

shareData.setImagePath(http://cdnup.b0.upaiyun.com/media/image/default.png);

9. 调用友推分享推荐组件   
publicvoidonClick(View v) {
    if(v.getId()==R.id.popup_bt){
        /*调用友推分享推荐组件,YouTuiViewType类的常量为分享样式参数,目前支持白色列表和黑色网格两种*/
        /*创建分享的模板,第一个参数为activity,第二个参数为分享窗口样式,第三个参数为是否需要积分*/
        YtTemplate blackTemp =newYtTemplate(this, YouTuiViewType.BLACK_POPUP,false); //黑色网格样式不需要积分活动
        /*YtTemplate blackTemp = new YtTemplate(this, YouTuiViewType.WHITE_LIST,ture);*///白色列表样式需要积分活动
          
    ShareData shareData =newShareData();
    shareData.isAppShare =false;//设置为true则分享的信息从友推后台填写的应用信息中读取,可动态更新后面的值不用设置。
    shareData.setDescription("友推积分组件");
    shareData.setTitle("友推分享");
    shareData.setText("通过友推积分组件,开发者几行代码就可以为应用添加分享送积分功能,并提供详尽的后台统计数据,除了本身具备的分享功能外,开发者也可将积分功能单独集成在已有分享组件的app上,快来试试吧http://youtui.mobi");
    shareData.setTarget_url("http://youtui.mobi");
    shareData.setImageUrl("http://youtui.mobi/media/image/youtui.png");
    shareData.setImagePath("http://cdnup.b0.upaiyun.com/media/image/default.png");
  
    blackTemp.setShareData(shareData);//设置默认的分享数据;shareData 设置参看4.6
    //**如果要为某个平台设置不一样的分享信息。则单独设置*/
    //blackTemp.addData(YtPlatform.PLATFORM_QQ, shareData);
    //调出分享窗口
    blackTemp.show();
          
    //如果需要自定义分享事件,可以创建监听事件,然后在回调中处理
    YtShareListener listener1 =newYtShareListener() {        
        @Override
        publicvoidonSuccess(ErrorInfo arg0) {
                  
        }
              
        @Override
        publicvoidonPreShare() {
                  
        }
              
        @Override
        publicvoidonError(ErrorInfo arg0) {
                  
        }
              
        @Override
        publicvoidonCancel() {
                  
        }
    };
    //给新浪微博添加分享监听
    blackTemp.addListener(YtPlatform.PLATFORM_SINAWEIBO, listener1);
    //给QQ添加分享监听
    //blackTemp.addListener(YtPlatform.PLATFORM_QQ, listener2);
      
    }

}



 类似资料: