안 드 로 이 드 동맹 제3자 로그 인 및 공유 실현 코드

머리말
최근 프로젝트 에 서 는 또 한 번 우 맹 을 통합 해 야 하 는 3 자 로그 인 과 공유 가 필요 합 니 다.기 록 된 적 이 없 으 니 이번 에는...
준비 작업
1.우 맹 계 정 을 등록 하여 응용 프로그램 을 만 들 고 키 를 얻 습 니 다.신청 주소http://www.umeng.com
2.대응 하 는 플랫폼(텐 센트,위 챗,시 나 닷 컴 등)에 대해 제3자 계 정 을 신청 하고 key 와 비밀 번 호 를 받 습 니 다.
통합 절차
쉐 어 SDK 공유 가 제3자 로그 인 통합 방식 과 유사 하기 때문에 같이 말씀 드 렸 습 니 다.
1.쉐 어 SDK 공유 SDK 다운로드
다운로드 주소:https://developer.umeng.com/sdk

2.jar 와 res 가 져 오기
개발 문 서 를 열 고 해당 SDK 및 demo 를 다운로드 합 니 다.SDK 를 다운로드 할 때 필요 한 기능 을 선택 하 십시오.

다운로드 한 파일 에 대응 하 는 기능 은 다음 그림 과 같 습 니 다.


Android studio 에 가 져 오고 의존 도 를 추가 합 니 다.
3.Android Manifest XML 설정
sdk 에 필요 한 액 티 비 티
시 나 닷 컴

  <activity
    android:name="com.umeng.socialize.media.WBShareCallBackActivity"
    android:configChanges="keyboardHidden|orientation"
    android:theme="@android:style/Theme.Translucent.NoTitleBar"
    android:exported="false"
    >
  </activity>
  <activity android:name="com.sina.weibo.sdk.web.WeiboSdkWebActivity"
       android:configChanges="keyboardHidden|orientation"
       android:exported="false"
       android:windowSoftInputMode="adjustResize"
  >

  </activity>
  <activity
    android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen"
    android:launchMode="singleTask"
    android:name="com.sina.weibo.sdk.share.WbShareTransActivity">
    <intent-filter>
      <action android:name="com.sina.weibo.sdk.action.ACTION_SDK_REQ_ACTIVITY" />
      <category android:name="android.intent.category.DEFAULT" />
    </intent-filter>

  </activity>
작은 편지

 <activity
      android:name=".wxapi.WXEntryActivity"
      android:configChanges="keyboardHidden|orientation|screenSize"
      android:exported="true"
      android:theme="@android:style/Theme.Translucent.NoTitleBar" />
QQ

   <activity
    android:name="com.tencent.tauth.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>
    <activity
    android:name="com.tencent.connect.common.AssistActivity"
    android:theme="@android:style/Theme.Translucent.NoTitleBar"
    android:configChanges="orientation|keyboardHidden|screenSize"/>
권한 추가:

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
어울리다
Android 6.0 권한 적합

if(Build.VERSION.SDK_INT>=23){
         String[] mPermissionList = new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE,Manifest.permission.ACCESS_FINE_LOCATION,Manifest.permission.CALL_PHONE,Manifest.permission.READ_LOGS,Manifest.permission.READ_PHONE_STATE, Manifest.permission.READ_EXTERNAL_STORAGE,Manifest.permission.SET_DEBUG_APP,Manifest.permission.SYSTEM_ALERT_WINDOW,Manifest.permission.GET_ACCOUNTS,Manifest.permission.WRITE_APN_SETTINGS};
         ActivityCompat.requestPermissions(this,mPermissionList,123);
       }
그 중에서 123 은 requestcode 로 이 code 에 따라 사용자 가 권한 수여 에 동 의 했 는 지 판단 할 수 있 습 니 다.동의 가 없 으 면 리 셋 에 따라 해당 하 는 처 리 를 할 수 있다.

@Override
public void onRequestPermissionsResult(int requestCode,
    String permissions[], int[] grantResults) {

}
설정 초기 화

@Override
  public void onCreate() {
    super.onCreate();
    UMConfigure.init(this,"5a12384aa40fa3551f0001d1"
        ,"umeng",UMConfigure.DEVICE_TYPE_PHONE,"");//58edcfeb310c93091c000be2 5965ee00734be40b580001a0

  }
다음은 각 플랫폼 의 appkey 를 설정 해 야 합 니 다.

    PlatformConfig.setWeixin("wxdc1e388c3822c80b", "3baf1193c85774b3fd9d18447d76cab0");
    //  RENREN             
    PlatformConfig.setSinaWeibo("3921700954", "04b48b094faeb16683c32669824ebdad","http://sns.whalecloud.com");
    PlatformConfig.setYixin("yxc0614e80c9304c11b0391514d09f13bf");
    PlatformConfig.setQQZone("100424468", "c7394704798a158208a74ab60104f0ba");
    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");
    PlatformConfig.setYnote("9c82bf470cba7bd2f1819b0ee26f86c6ce670e9b");
서명 하 다.
keystore 서명 후의 apk 로 테스트 해 야 합 니 다.서명 파일 을 추가 하지 않 으 면 일부 플랫폼 의 권한 수여 가 영향 을 받 을 수 있 습 니 다.
사용 절차
나누다
우 맹 공 유 는 두 가지 형식 으로 나 뉜 다.
공유 패 널 의 공 유 를 사용 하면 사용 자 는 공유 패 널 을 여 는 방법 으로 공유 패 널 의 해당 플랫폼 을 클릭 하여 공유 할 수 있 습 니 다.
공유 패 널 의 공 유 를 사용 하지 않 습 니 다.사용 자 는 공유 단 추 를 직접 쓰 거나 이 벤트 를 촉발 한 다음 에 공유 방법 을 사용 하여 공유 할 수 있 습 니 다.한 마디 로 하면 직접 공유 하 는 것 은 사용자 자신의 인터페이스 구성 요소 에 공유 행 위 를 삽입 하 는 것 입 니 다.공유 패 널 은 우리 가 작성 한 인터페이스 구성 요 소 를 열 고 클릭 이벤트 에 따라 공유 하 는 것 입 니 다.
공유 패 널 을 여 는 코드 는 다음 과 같 습 니 다.

new ShareAction(MainActivity.this)
.setPlatform(SHARE_MEDIA.QQ)//    
.withText("hello")//    
.setCallback(umShareListener)//     
.share();
공유 하 는 유형 은 여러 가지 가 있 습 니 다.구체 적 으로 동맹 개발 자 문 서 를 볼 수 있 습 니 다.여 기 는 연결 을 예 로 들 면:
링크 공 유 는 UmWeb 으로 공유 할 수 있 습 니 다.

UMWeb web = new UMWeb(Defaultcontent.url);
    web.setTitle("This is music title");//  
    web.setThumb(thumb); //   
    web.setDescription("my description");//  
그리고 이 인 자 를 ShareAction 에 설정 합 니 다.

new ShareAction(ShareActivity.this)
  .withMedia(web)
  .share();
2.제3자 등록
제3자 로그 인 은 두 가지 사용 장면 을 포함 합 니 다:
사용자 자료 의 권한 수여 인 터 페 이 스 를 가 져 옵 니 다.이 인 터 페 이 스 를 사용 하면 이 3 자 플랫폼 이 되 돌아 오 는 모든 자료(이름,성별,이미지 등 포함)를 얻 을 수 있 습 니 다.현재 제3자 로그 인 을 지원 하 는 플랫폼 은 다음 과 같 습 니 다.
국내 플랫폼(위 챗,시 나 웨 이 보,QQ,콩잎,사람)
해외 플랫폼(Facebook,Twitter,linkedIn,kakao,VKontakte,Dropbox)
여기 서 는 첫 번 째 방식 으로 실현 하 는 것 을 추천 합 니 다.본질 적 으로 3 자 로그 인 은 최종 적 으로 3 자 플랫폼 의 사용자 자 료 를 끌 어 올 려 야 하기 때 문 입 니 다.이런 점 에서 SDK 를 직접 호출 하 는 것 과 백 스테이지 서버 를 통 해 요청 하 는 것 은 안전성 이 같 습 니 다.
제3자 로그 인 은 두 가지 사용 장면 을 포함 합 니 다:
사용자 자료 의 권한 수여 인 터 페 이 스 를 가 져 옵 니 다.이 인 터 페 이 스 를 사용 하면 이 3 자 플랫폼 이 되 돌아 오 는 모든 자료(이름,성별,이미지 등 포함)를 얻 을 수 있 습 니 다.현재 제3자 로그 인 을 지원 하 는 플랫폼 은 다음 과 같 습 니 다.
국내 플랫폼(위 챗,시 나 웨 이 보,QQ,콩잎,사람)
해외 플랫폼(Facebook,Twitter,linkedIn,kakao,VKontakte,Dropbox)
여기 서 는 첫 번 째 방식 으로 실현 하 는 것 을 추천 합 니 다.본질 적 으로 3 자 로그 인 은 최종 적 으로 3 자 플랫폼 의 사용자 자 료 를 끌 어 올 려 야 하기 때 문 입 니 다.이런 점 에서 SDK 를 직접 호출 하 는 것 과 백 스테이지 서버 를 통 해 요청 하 는 것 은 안전성 이 같 습 니 다.
사용자 자료 가 져 오기
사용자 자 료 를 가 져 오 려 면 다음 인 터 페 이 스 를 사용 할 수 있 습 니 다.

mShareAPI.getPlatformInfo(UserinfoActivity.this, SHARE_MEDIA.SINA, umAuthListener);
그 중에서 umAuthListener 는 권한 을 부여 하기 위해 다음 과 같이 구축 합 니 다.

UMAuthListener authListener = new UMAuthListener() {
    /**
     * @desc        
     * @param platform     
     */
    @Override
    public void onStart(SHARE_MEDIA platform) {

    }

    /**
     * @desc        
     * @param platform     
     * @param action     ,      
     * @param data       
     */
    @Override
    public void onComplete(SHARE_MEDIA platform, int action, Map<String, String> data) {

      Toast.makeText(mContext, "   ", Toast.LENGTH_LONG).show();

    }

    /**
     * @desc        
     * @param platform     
     * @param action     ,      
     * @param t     
     */
    @Override
    public void onError(SHARE_MEDIA platform, int action, Throwable t) {

      Toast.makeText(mContext, "  :" + t.getMessage(),                   Toast.LENGTH_LONG).show();
    }

    /**
     * @desc        
     * @param platform     
     * @param action     ,      
     */
    @Override
    public void onCancel(SHARE_MEDIA platform, int action) {
      Toast.makeText(mContext, "   ", Toast.LENGTH_LONG).show();
    }
  }; 
로그 인 에 성공 하면 제3자 플랫폼 은 사용자 자 료 를 전송 하고 모두 Map data 에서 되 돌려 줍 니 다.
그리고 다른 기능 도 있 습 니 다.여러분 은 우 맹 개발 문서,주 소 를 볼 수 있 습 니 다.
https://developer.umeng.com/docs/66632/detail/66639
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기