1. 程式人生 > >實現微信分享以及解決分享後的回撥監聽是否分享成功

實現微信分享以及解決分享後的回撥監聽是否分享成功

最近要實現一個分享到微信朋友圈的功能,遇上趕快找度娘,一打聽,實現方法有2種,一種是通過intent意圖開啟微信的分享介面,經過試用了其他應用,這個方法體驗不好,果斷pass掉,第二種方法就是去微信官網開開發者文件。看了之後發現要先提交自己的應用,然後通過稽核後才能使用微信官方的分享SDK,然後一些列提交,等了一天後稽核通過。在這裡我要提醒一下就是,提交APK包名和簽名檔案是唯一的,這個不要亂提交,要仔細看好。接下來半個小時照著那個官方的小demo實現了分享,也比較簡單,對了,當debug時要注意換籤名工具,官方的demo都會帶有的,名字叫debug.keystoret,如果不替換的話是不行的,難題這時來了。雖然可以分享了,但是彈出的分享對話方塊輸入的文字分享後不會顯示在微信朋友圈裡面,官方的demo也不行,很是奇怪,通過仔細觀察,發現我用的是官方例子的第一個:傳送純文字,這個是不行的,於是看了其他的幾個方法,有分享圖片的,分享連結的,官方的demo有BUG,害得我搞了這麼久,改改那個demo就行了,就可以分享出去了,也能在彈出的對話方塊裡面輸入文字分享出去了,哈哈,改的地方是哪個圖片資源,由於官方demo圖片資源指定有問題,所以官方demo傳送圖片啊傳送連結啊都發不出去。

說了這麼多最奇怪的問題來了,有木有發現官方的例子傳送成功或者取消後都會有個吐司提示,而我的就沒有,經過一番再研究那個官方demo,哦,當分享成功後會開啟WXEntryActivity這個活動,實現implements IWXAPIEventHandler     ,註冊了一個監聽 api.handleIntent(getIntent(), this);那麼就會呼叫這個方法

// 第三方應用傳送到微信的請求處理後的響應結果,會回撥到該方法
	@Override
	public void onResp(BaseResp resp) {
		int result = 0;
		
		switch (resp.errCode) {
		case BaseResp.ErrCode.ERR_OK:
			result = R.string.errcode_success;
			break;
		case BaseResp.ErrCode.ERR_USER_CANCEL:
			result = R.string.errcode_cancel;
			break;
		case BaseResp.ErrCode.ERR_AUTH_DENIED:
			result = R.string.errcode_deny;
			break;
		default:
			result = R.string.errcode_unknown;
			break;
		}
		
		Toast.makeText(this, result, Toast.LENGTH_LONG).show();
	}
看到了嗎?裡面有個吐司,當成功了或者失敗了都會吐出來的,哈哈,別急還沒完,於是我高興的在我自己的Activity裡面也實現了這個介面,註冊了這個監聽但是奇蹟沒有發生,很奇怪的問題,問了很多朋友都說不會,我看了下,很多軟體業沒監聽是否分享成功,我搞了2天無果,打算放棄了,既然網易啊鳳凰衛視啊的APP都沒實現我也不實現了,但是我晚上睡不著,因為這個問題還糾結著我,因為搜狐新聞是可以的,我以為他們是沒監聽,隨便寫的,只有分享了管他成功不成功都吐司說成功了,其實經過我仔細觀察,發現不是的,他們真的監聽到了是否成功,所以才睡不著啊,今天我又搞它了,我不信,只要是別人能實現的,那麼我也應該可以實現,肯定裡面有訣竅,我就把搜狐 新聞APP反編譯來看,我發現他們也有了WXEntryActivity這個類,有點不同的是他們的包名前面都改成了他們自己的,但是後面始終留了一個單詞"wxapi",前面的無所謂,經過我測試,還是沒成功,很納悶啊,突然我發現WXEntryActivity這個活動我註冊那少了一個 android:exported="true",我加上後果然可以了,但是還是有個問題,當分享成功後會跳轉到WXEntryActivity這個活動,我就把它設定背景為透明,發現當跳過來時會閃一下,不好啊,不要緊,可以給這個活動加一個樣式
 <activity
            android:name="com.sample.android.main.wxapi.WXEntryActivity"
            android:exported="true"
            android:screenOrientation="portrait"
            android:theme="@android:style/Theme.NoDisplay" >
        </activity>

看到了吧,這樣就不會閃了。寫得有點凌亂,也不是很清楚,如果不懂的可以留言問我。另外我附上我的寫的例子,是根據官方demo改的,所有APP_ID和包名就不能改,注意,一個手機上只能同時出現一個這個報名和APPID、簽名的APK,不然會不行的。

下載連結:http://download.csdn.net/detail/msn465780/6558625

相關推薦

實現分享以及解決分享是否分享成功

最近要實現一個分享到微信朋友圈的功能,遇上趕快找度娘,一打聽,實現方法有2種,一種是通過intent意圖開啟微信的分享介面,經過試用了其他應用,這個方法體驗不好,果斷pass掉,第二種方法就是去微信官網開開發者文件。看了之後發現要先提交自己的應用,然後通過稽核後才能使用微信

Android 分享用戶選擇留在了。怎麼辦???如何呢?

        使用者分享成功後有兩個選擇,“留在微信”和“返回app”。如果使用者選擇“返回app”,我們這樣正常接收到回撥。如果使用者“留在微信”,我們就無法就到回撥。所以只要能檢測到使用者調起分享後留在了微信,就可以認為使用者分享成功了。因為分享失敗或者取消分享到情況下

iOS實現外部H5支付完成返回原APP(多APP也可實現)

更改 開發 技術分享 服務器端 嚴重 圖片 正常 接口 width 看到微信最近放開了微信H5支付,公司決定把H5集成到多款APP上。下面記錄下了開發過程。 由於是微信新推出的支付方式,在網上搜索到的相關資料並不多,其中有一篇文章(點此跳轉)對我的整個開發過程起到了很大幫助

通過生成支付二維碼來實現支付的解決方案 - EasyWechat版(轉)

ppi ppk 一個 segment url out -s easy 記得 上一篇我們講了在微信瀏覽器內實現微信支付的功能,它特別適合於一些基於微信公眾號的h5站點等,支付流程也相當流暢,但是... 還有一種情況,比如現在北哥兄弟連PC版,是生成了一個二維碼,這個二維碼

小程式:web-view巢狀H5實現支付功能解決方案及填坑

最近一個多月加班比較嚴重,偶爾休息一天也是在補睡眠+陪家人,比較長時間沒有來進行總結記錄了。今天不加班,開始為這段時間做的東西進行下經驗總結。 這段時間因為公司需要,接觸了一些.Net前後臺開發,慢慢了解了一些WCF、H5站點、WebService、Soap、Linq等,也

小程式開發中textarea文字域字數限制與動態計算

微信小程式開發時常會有評論或者備註功能,都會用到文字域字元長度計算以及字元限制的功能,筆者把最簡潔易用的案例分享出來。學習之前先看微信官方API文件 https://mp.weixin.qq.com/debug/wxadoc/dev/component/textarea.html

C#支付(六)—— 通知

這是重頭戲了,修改訂單狀態一般就是兩個地方,一個是前臺輪訓後發現微信訂單完成後修改狀態,另一個就是通知回撥那了。 通知回撥類,修改了下微信Demo程式碼,相容了支付和退款兩種情況,覺得放一起不好的,想分成兩個介面就拆開就好了 /// <summ

網頁授權獲取code值兩次的問題

問題描述:在呼叫微信網頁授權獲取openid值時,先獲取的code值,但是code值的介面 會走兩次回撥。而code在6分鐘內只能用一次,所以處出現code失效的問題,問題顯示錯誤碼:{‘errcode’:40029,’errmsg’:’invalid code, hints: [ req_id: 0407n

自帶瀏覽器對返回鍵的

最近的一個微信web專案,微信自帶瀏覽器的返回鍵會對專案造成影響,自然而然得唄pm加了需求,在查閱一些列部落格以後,找到了合理的解決方案,就目前我用的手機都還是相容狀態,下面放上方法: $(function(){       pushHistory();       win

APP支付(支付寶和生成客戶端簽名及驗籤)

<?php namespace Pn\Controller; use Think\Controller\RestController; class PayController extends RestController{ public function __

小程式Ⅵ [wx.request 的使用]

☆ 前言 在微信小程式的開發過程中,wx.request 的請求必不可少 我注意到(也可能剛接觸,知識積累面太少),在外部 js 檔案使用 wx.request 請求伺服器資料時,因為非同步的請求機

Vue 項目實現分享的自定義分享鏈接問題解決

情況 錯誤 目的 是個 找問題 自定義分享 當前頁 不用 appid 前言:   前兩天在做微信公眾號裏的項目的時候有一個需求是在 vue 項目中實現微信分享,然後在自定義分享鏈接的時候出了一些問題,分享出去的自定義鏈接(鏈接中攜帶參數)總是會直接跳到項目首頁,而且是玄學跳

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

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

android 實現分享多張圖片的功能

files gui 功能實現 pen ring row 還要 bsp sha 昨天公司老大通知客戶改需求了,原來的微信分享改成分享多張圖片,然後屁顛屁顛跑到微信平臺看了以後 心裏千萬只草泥馬狂奔而過,微信平臺沒有提供分享多張的SDK有木有啊,我們只能自己調用系統自帶的分享

關於js實現,QQ,分享的總結

直接 默認 總結 不可 功能 網頁分享 默認瀏覽器 跳轉 百度 2018年5月16日,今天搜索了有關js分享的功能,做個總結。 微信內瀏覽器 App(hybrid) UC,QQ瀏覽器 其他瀏覽器 微信 1 調用內置API可一鍵分享 2 引導使用自帶分享功

php實現分享朋友圈

public private abcd ushare name preview set PE char class JSSDK { private $appId; private $appSecret; public function __construct($a

實現分享功能

實現微信分享功能整理 1、引入js檔案 <script src="http://res.wx.qq.com/open/js/jweixin-1.2.0.js"></script> 2、通過config介面注入許可權驗證配置 var wxConfig = { de

使用shareSDK實現多圖分享到朋友圈&Url分享到朋友圈&URL分享到好友 問題記錄

問題概述 其實第三方分享很早就有了,這個按理說這個應該沒什麼難度,為啥記錄一下呢,因為專案中同時出現了 朋友圈多圖分享(多張URL集合),朋友圈URL分享,群和個人URL,圖片分享。基本上涵蓋了大部分需求,這其中出現了一些問題,在此記錄一下。 基本操作流程: 操作流程專案過程

VueJs單頁應用實現網頁授權及分享功能示例

在實際開發中,無論是做PC端、WebApp端還是微信公眾號等型別的專案的時候,或多或少都會涉及到微信相關的開發,最近公司專案要求實現微信網頁授權,並獲取微信使用者基本資訊的功能及微信分享的功能,現在總算完成了,但開發過程中遇到好幾個坑。廢話不多說了,開始正題。 描述點 微信相關開發知識

Vux+Cordova打包的安卓App實現分享朋友和朋友圈

知識儲備 Cordova Plugin ShareSDK 外掛 什麼是Cordova Plugin ShareSDK Cordova Plugin ShareSDK封裝了ShareSDK的android和ios平臺的分享功能。在hybird app開發中可以方便的完成分享功能。如:ion