android 分享小程序到微信,Android 使用友盟分享微信小程序到微信
Android使用友盟分享微信小程序到微信
在友盟官網(wǎng)上看到了相關(guān)的API,但是總是無(wú)法正常調(diào)用,下面記錄下自己的處理流程:
引入依賴
implementation 'com.umeng.umsdk:common:2.2.5'
implementation 'com.umeng.umsdk:share-core:7.0.2'
implementation 'com.umeng.umsdk:share-board:7.0.2'
//為支持微信分享的模塊
implementation 'com.umeng.umsdk:share-wx:7.0.2'
添加所需權(quán)限,創(chuàng)建微信所需的Activity
請(qǐng)?jiān)贏ndroidManifest中添加如下權(quán)限
并在AndroidManifest中添加如下代碼(需要提前創(chuàng)建好Activity):
android:configchanges="keyboardHidden|orientation|screenSize"
android:exported="true" android:launchmode="singleTask"
android:name=".wxapi.WXEntryActivity"
android:taskaffinity="net.sourceforge.simcpux"
android:theme="@android:style/Theme.Translucent.NoTitleBar">
在你的項(xiàng)目包中創(chuàng)建wxapi包,并創(chuàng)建WXEntryActivity.class
public class WXEntryActivity extends WXCallbackActivity implements IWXAPIEventHandler {
private IWXAPI wxapi= BaseApplication.getInstance().getWxApi();
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
setIntent(intent);
wxapi.handleIntent(intent, this);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
wxapi.handleIntent(getIntent(), this);
}
@Override
public void onReq(BaseReq baseReq) {
LogUtils.d(baseReq:+baseReq.openId);
}
@Override
public void onResp(BaseResp baseResp) {
if (baseResp.getType()==ConstantsAPI.COMMAND_SENDMESSAGE_TO_WX){
finish();
}else if(baseResp.getType()==ConstantsAPI.COMMAND_SENDAUTH){
LogUtils.d(返回授權(quán)+baseResp.errCode);
switch (baseResp.errCode) {
case BaseResp.ErrCode.ERR_OK:
LogUtils.d(返回Code:+((SendAuth.Resp) baseResp).code);
EventBus.getDefault().post(new EventMessage(CodeManager.BIND_PHONE,((SendAuth.Resp) baseResp).code));
break;
case BaseResp.ErrCode.ERR_USER_CANCEL:
case BaseResp.ErrCode.ERR_AUTH_DENIED:
case BaseResp.ErrCode.ERR_UNSUPPORT:
break;
}
finish();
}
}
}
由于我在項(xiàng)目中集成了其他微信相關(guān)的SDK,讀者只用關(guān)注這個(gè) WXEntryActivity需要繼承 WXCallbackActivity 以及實(shí)現(xiàn) IWXAPIEventHandler 這兩個(gè)類。
在自定義的 BaseApplication 的 onCreate 方法中需要注冊(cè)友盟
...
@Override
public void onCreate() {
super.onCreate();
initUmeng();
}
private void initUmeng() {
// 在此處調(diào)用基礎(chǔ)組件包提供的初始化函數(shù) 相應(yīng)信息可在應(yīng)用管理 -> 應(yīng)用信息 中找到 http://message.umeng.com/list/apps
// 參數(shù)一:當(dāng)前上下文context;
// 參數(shù)二:應(yīng)用申請(qǐng)的Appkey;
// 參數(shù)三:渠道名稱;
// 參數(shù)四:設(shè)備類型,必須參數(shù),傳參數(shù)為UMConfigure.DEVICE_TYPE_PHONE則表示手機(jī);傳參數(shù)為UMConfigure.DEVICE_TYPE_BOX則表示盒子;默認(rèn)為手機(jī);
// 參數(shù)五:Push推送業(yè)務(wù)的secret 填充Umeng Message Secret對(duì)應(yīng)信息(需替換)
UMConfigure.init(this, 應(yīng)用在友盟申請(qǐng)的Appkey, Umeng, UMConfigure.DEVICE_TYPE_PHONE, 沒(méi)有使用推送服務(wù),傳空字符串就行);
//開(kāi)通微信分享 第一個(gè)值為app在微信注冊(cè)時(shí)的AppID 第二個(gè)值是你們軟件注冊(cè)時(shí)的AppSecret
PlatformConfig.setWeixin(wx*************, *******AppSecret****);
}
注意!這里一定要添加開(kāi)通微信分享的代碼,否則點(diǎn)擊分享按鈕將沒(méi)有任何反應(yīng)!!! PlatformConfig.setWeixin("wx*************", "*******AppSecret****");
分享小程序到微信
我將分享邏輯放在彈窗點(diǎn)擊事件里
private void showShareDialog(DistributionMyGoodsBean.ListBean listBean) {
//分享
ShareDialog shareDialog = new ShareDialog(mContext, false);
shareDialog.setOnButtonListener(new ShareDialog.OnButtonListener() {
@Override
public void onWeChatClick() {
ToastUtils.showShort(微信分享);
//兼容低版本的網(wǎng)頁(yè)鏈接
UMMin umMin = new UMMin(你想要兼容的網(wǎng)頁(yè)鏈接,需要帶上http://);
// 小程序消息封面圖片
umMin.setThumb(new UMImage(mContext, listBean.getImage()));
// 小程序消息title
umMin.setTitle(listBean.getTitle());
//小程序頁(yè)面路徑
umMin.setPath(/pages/小程序?qū)?yīng)的頁(yè)面鏈接);
//小程序原始id,在微信平臺(tái)查詢
umMin.setUserName(gh_***********);
//設(shè)置小程序版本
//預(yù)覽版
Config.setMiniPreView();
//測(cè)試版
Config.setMiniTest();
new ShareAction((Activity) mContext)
.setPlatform(SHARE_MEDIA.WEIXIN)
.withMedia(umMin)
.setCallback(shareListener)
.share();
}
@Override
public void onCircleFriendsClick() {
//小程序目前無(wú)法分享小程序到朋友圈
}
});
shareDialog.show();
}
注意:在分享小程序之前是必須要設(shè)置小程序的版本的,不然點(diǎn)開(kāi)微信鏈接會(huì)報(bào)錯(cuò)
總結(jié)
以上是生活随笔為你收集整理的android 分享小程序到微信,Android 使用友盟分享微信小程序到微信的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: [Network Architectur
- 下一篇: 读书笔记--Android Gradle