1. 程式人生 > >Android開發:實現分享給微信好友以及出現閃退的問題

Android開發:實現分享給微信好友以及出現閃退的問題

轉載煩請註明本文出處~

1.申請微信APPID

     要實現分享到微信的功能,首先要到微信開放平臺申請一個APPID。但在申請APPID的時候需要填寫一個應用簽名和應用包名。需要注意的是包名必須與開發應用時的包名一致,應用簽名也必須去掉冒號而且字母為小寫


2.應用簽名的獲取

    開發android應用的人很多,很有可能類名、包名起成了同一個名字,簽名這時候就起到區分的作用。

所有的Android應用都必須有數字簽名,不存在沒有數字簽名的應用,包括模擬器執行的。模擬器開發環境,開發時,通過ADB介面上傳的程式會自動被簽有Debug許可權,然後才傳遞到模擬器。開啟Eclipse的Window-->preferences-->Android-->Buid選單選項如下圖,顯示的是預設的除錯用的簽名數字證書。


然而使用微信的分享功能需要使用正式釋出Android應用時的簽名,才不會出現閃退現象。

為了生成一個正式釋出的應用的簽名,首先我們需要一個keystore:

cmd命令列進入到JDK的bin目錄,這樣待會生成的android.keystore檔案就會在這個目錄下;進入bin目錄後輸入

keytool -genkey -alias android.keystore -keyalg RSA -validity 20000 -keystore android.keystore 

接著會顯示輸入keystore密碼:

再次輸入新密碼:

您的姓名與姓氏是什麼?

您的組織單位名稱是什麼?

您的組織名稱是什麼?

......

最後要你確認以上資訊是否正確,確認就輸入 Y

輸入<android.keystore>的主密碼(如果和 keystore 密碼相同,按回車): (博主我按了回車)

接著回到eclipse中,右擊專案-->android tools-->Export signed Application Packages,選擇需要export的專案名,點選next,Use existing keystore,location裡選擇jdk的bin目錄裡剛剛生成的android.keystore,輸入剛剛在cmd裡設定的密碼,點選next,再次輸入密碼,點選next,選擇apk存放的位置,如下圖


MD5就是我們在微信開放平臺需要輸入的應用簽名(注意字母要小寫,冒號去掉)。

在微信開發平臺點選提交稽核後,一般一天內就可以通過稽核,此時在管理中心,我們就可以看到APPid


3.在應用中使用微信分享功能

建立微信api

private static final String APP_ID = "申請到的APPID";
    private IWXAPI api;
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		
		api = WXAPIFactory.createWXAPI(getActivity(), APP_ID);
		api.registerApp(APP_ID);
}
			//建立一個用於封裝待分享文字的WXTextObject物件
			WXTextObject textObject = new WXTextObject();
			textObject.text = text;//text為需要分享的文字字串
			//第2步:建立WXMediaMessage物件,該物件用於Android客戶端向微信傳送資料
			WXMediaMessage msg = new WXMediaMessage();
			msg.mediaObject = textObject;
			msg.description = "日程資訊";

			//第3步:建立一個用於請求微信客戶端的SendMessageToWX.Req物件
			SendMessageToWX.Req req = new SendMessageToWX.Req();
			req.message = msg;
			//設定請求的唯一標識
			req.transaction = buildTransaction(text);
			req.scene = SendMessageToWX.Req.WXSceneSession;
			// 第4步:傳送給微信客服端
			api.sendReq(req);

每一次修改後的除錯都要export一次apk,然後安裝apk,除非不是除錯微信分享功能則可直接run;呼叫其他api如百度地圖需要應用簽名的,也要注意除錯時的簽名和正式釋出應用的簽名不一樣。

========================================================

微信開發平臺的開發文件https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1419317340&token=bc25a3ea6a50211b02479d6ac715d5da8722e9a5&lang=zh_CN