需求:APP端 將公司的微信小程序 分享至微信好友
最近颖变,微信小程序比較火熱拼卵,公司也在做這一塊史汗,目前公司的小程序都是由H5端開發(fā)的,我們Android端也接到一個(gè)任務(wù)怕吴,那就是Android端應(yīng)支持微信小程序的分享窍侧,并且通過(guò)分享出去的小程序可以啟動(dòng)我們的APP;
今天我們先來(lái)完成:Android端應(yīng)支持微信小程序的分享W痢N凹!
分析:
微信開放平臺(tái)SDK支持小程序類型分享议经,詳見官方文檔:
https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1419317340&token=&lang=zh_CN
a) 要求發(fā)起分享的App與小程序?qū)儆谕晃⑿砰_放平臺(tái)帳號(hào)斧账;
b) 支持分享小程序類型消息至好友會(huì)話谴返,不支持“分享至朋友圈” “收藏”;
c) 微信客戶端版本要求:6.5.6及以上微信客戶端版本咧织,若客戶端版本低于6.5.6嗓袱,小程序類型分享將自動(dòng)轉(zhuǎn)成網(wǎng)頁(yè)類型分享。開發(fā)者必須填寫網(wǎng)頁(yè)鏈接字段习绢,確保低版本客戶端能正常打開網(wǎng)頁(yè)鏈接渠抹;
d) 支持分享大圖卡片樣式,自定義圖片建議長(zhǎng)寬比是 5:4闪萄。6.5.9及以上版本微信客戶端小程序類型分享使用大圖卡片樣式梧却。
e)支持分享開發(fā)版/體驗(yàn)版小程序,為支持開發(fā)者調(diào)試败去,開發(fā)者工具包支持分享開發(fā)版/體驗(yàn)版小程序至微信放航,開發(fā)者可控制分享的小程序版本。
把文檔看了一遍圆裕,發(fā)現(xiàn)限制是比較多的广鳍,但是功能實(shí)現(xiàn)還是很簡(jiǎn)單的,下面讓我們開始吧:K衙獭!
開發(fā):
-
前期準(zhǔn)備
-
小程序與APP主體賬號(hào)綁定
開發(fā)人員希望通過(guò)APP分享小程序耿战,需要先將小程序與APP主體賬號(hào)(即APP的微信開放平臺(tái)賬號(hào))綁定蛋叼,APP才具有分享對(duì)應(yīng)小程序的能力。如果沒(méi)有與主體賬號(hào)綁定剂陡,分享時(shí)是報(bào)錯(cuò)的狈涮,如下圖:
2.1. 登錄APP所在的微信開放平臺(tái):https://open.weixin.qq.com/
2.2. 綁定小程序
由上圖可以看到,綁定小程序的數(shù)量是有限制的鸭栖。我們點(diǎn)擊【綁定小程序】按鈕歌馍,打開的新頁(yè)面
輸入小程序開發(fā)的主賬號(hào)和密碼,輸入驗(yàn)證碼提交就可以了晕鹊,然后再通過(guò)手機(jī)微信掃碼驗(yàn)證一下松却。
綁定成功后,直接就能在綁定列表中看到已綁定的小程序=啊O汀!
- 代碼實(shí)現(xiàn)
3.1 小程序端提供參數(shù):
miniProgram.userName="xxx"; //小程序ID
miniProgram.path="pages/xxx/xxx"; //小程序路徑
3.2 配置gradle
dependencies {
compile 'com.tencent.mm.opensdk:wechat-sdk-android-with-mta:+'
}
3.3 分享小程序的核心代碼
findViewById(R.id.send_mini).setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
WXMiniProgramObject miniProgram = new WXMiniProgramObject();
miniProgram.webpageUrl="http://www.qq.com";//自定義
miniProgram.userName="xxxxxxxxx";//小程序端提供參數(shù)
miniProgram.path="pages/entry";//小程序端提供參數(shù)
WXMediaMessage mediaMessage = new WXMediaMessage(miniProgram);
mediaMessage.title = "cgw miniProgram";//自定義
mediaMessage.description = "this is miniProgram's description";//自定義
Bitmap bitmap = BitmapFactory.decodeResource(SendToWXActivity.this.getResources(),R.drawable.fightk);
Bitmap sendBitmap = Bitmap.createScaledBitmap(bitmap,200,200,true);
bitmap.recycle();
mediaMessage.thumbData = Util.bmpToByteArray(sendBitmap,true);
SendMessageToWX.Req req = new SendMessageToWX.Req();
req.transaction = "";
req.scene = SendMessageToWX.Req.WXSceneSession;
req.message = mediaMessage;
api.sendReq(req);
}
});
- Demo演示
為了避免麻煩飞几,我們直接下載使用官方Demo砚哆,在其源代碼上直接修改,修改的內(nèi)容主要如下:
a. 包名(必須修改屑墨,使用你項(xiàng)目APP的實(shí)際包名)
b. 配置gradle(微信sdk包躁锁、簽名文件)
c. 增加分享小程序的按鈕和事件
4.1 下載微信開放平臺(tái)官方Demo
https://open.weixin.qq.com/zh_CN/htmledition/res/dev/download/sdk/WeChatSDK_sample_Android.zip
4.2 修改包名
使用Androidstudio打開demo纷铣,目錄結(jié)構(gòu)如下圖,修改其包名
4.2.1如上圖战转,取消compact empty middle packages的默認(rèn)選中
4.2.2在對(duì)應(yīng)包名的文件夾上搜立,直接右鍵修改名稱,改成包名對(duì)應(yīng)的名稱槐秧,并全部應(yīng)用
可參考:http://www.reibang.com/p/557e1906db1a
修改后的包名儒拂,必須是你項(xiàng)目APP的實(shí)際包名,且已通過(guò)微信開放平臺(tái)審核的APP包名色鸳;
4.3 配置gradle(修改依賴、修改簽名)
簽名必須使用你項(xiàng)目APP對(duì)應(yīng)的簽名文件见转,即你申請(qǐng)微信開放平臺(tái)時(shí)APP對(duì)應(yīng)的簽名文件命雀;
4.4 修改APP_ID
public class Constants {
// APP_ID 替換為你的應(yīng)用從官方網(wǎng)站申請(qǐng)到的合法appId
public static final String APP_ID = "wxf666676666636666";
public static class ShowMsgActivity {
public static final String STitle = "showmsg_title";
public static final String SMessage = "showmsg_message";
public static final String BAThumbData = "showmsg_thumb_data";
}
}
4.5 增加分享小程序的按鈕和事件
4.6 測(cè)試
選擇分享的人員
收到分享的小程序卡片
至此,Demo演示完畢斩箫,如有問(wèn)題吏砂,請(qǐng)留言詢問(wèn)!3丝汀狐血!