A. android sharesdk 分享之後回調怎麼寫
android shareSDK 微博分享案例
ShareSDK
APP_KEY 219b1121fc68
騰訊微博
key 801517904
secret
新浪微博
key 3815341537
secret
包名+keySotre簽名:
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
准備階段:
使用ShareSDK步驟
1. ShareSDK官網,創建應用 獲取Key
2. ShareSDK官網,下載SDK
3. 使ShareSDK的DEMO正常運行
(類庫:ShareSDK for Android
demo:ShareSDK for Android Sample)
4.創建新的項目
5.去各平台注冊key
新浪微博:
a.證書簽名需要個人證書導出項目時獲取到
MD5 : 91:F0:5B:CE:67:58:F1:A1:E8:70:A4:F3:FA:5F:87:1B
證書格式為小寫字母並不含:
6.sample里所有的圖片以及values拷入當前新的項目:
此時需要修改 main_activity.xml and menu.xml 中跟 @String/ 有關的信息!
7.sample里asset里Sharesdk.xml拷入當前新的項目,並且修改指定內容
RedirectUrl:如果指定授權回調頁,就填寫回調頁,如沒有,就填寫應用網址
8.需要把sample里mainifest中的許可權拷入當前新的項目
9.sample里mainifest中的ShareSDKUIShell,activity注冊到當前新的項目中,代碼如下:
<activity
android:name="cn.sharesdk.framework.ShareSDKUIShell"
android:theme="@android:style/Theme.Translucent.NoTitleBar"android:configChanges="keyboardHidden|orientation|screenSize"android:windowSoftInputMode="stateHidden|adjustResize" >
</activity>
10.拷入需要用到的jar包
必拷:mframework.jar
必拷:ShareSDK-Core-2.3.8jar
分享指定平台:
ShareSDK-XXX.jar
11.將onkeyshare包拷貝到當前項目中
分享步驟:
***************************
1.初始化ShareSDK
ShareSDK.init(this);
2.設置指定平台
Platform p=ShareSDK.getPlatform(XXX.NAME);
3.設置平台監聽器
p.setPlatform
AcitonListener{
1.error
2.complete
3.cancel
}
4.進行授權
p.rauthorize();
5.重寫平台監聽器中的complete
獲取某平台參數對象
Platform.ShareParams ps=
new XXX.ShareParams();
添加要分享的數據
ps.setText/setImageUrl/set..
分享
p.share(ps);
分享案例代碼:
[html] view plainprint?
package com.example.lovesharesdkdemo;
import java.util.HashMap;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.TextView;
import cn.sharesdk.framework.Platform;
import cn.sharesdk.framework.PlatformActionListener;
import cn.sharesdk.framework.ShareSDK;
import cn.sharesdk.tencent.weibo.TencentWeibo;
public class MainActivity extends Activity {
private Platform platform;
private TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//1 初始化SDK
ShareSDK.initSDK(getApplicationContext());
//2.設置指定平台
platform = ShareSDK.getPlatform(TencentWeibo.NAME);
//3 獲取組件 注冊事件
textView = (TextView) this.findViewById(R.id.buttton);
textView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//TOFO 分享SDK
getShareSDK();
}
private void getShareSDK() {
//3 給平台添加 listener
platform.setPlatformActionListener(new PlatformActionListener() {
@Override
public void onError(Platform arg0, int arg1, Throwable arg2) {
// TODO error useful
Log.i("error", "---error="+arg2.getLocalizedMessage());
}
@Override
public void onComplete(Platform arg0, int arg1, HashMap<String, Object> arg2) {
// TODO finished useful
//設置分享的參數:
TencentWeibo.ShareParams shareParams = new TencentWeibo.ShareParams();
shareParams.setText("美女的世界");
shareParams.setImageUrl("http://t12..com/it/u=750616964,1500186643&fm=59");
// 分享
platform.share(shareParams);
}
@Override
public void onCancel(Platform arg0, int arg1) {
// TODO cancel
B. 如何使用ShareSDK讓APP快速擁有分享功能
Android 集成指南 1 獲取ShareSDK 為了集成ShareSDK,您首先需要到ShareSDK 官方網站注冊並且創建應用,獲得 ShareSDK 的Appkey,然後到SDK 的下載頁面下載SDK 的壓縮包,解壓以後可以得到 下圖的四個目錄: 其中的Libs 包含ShareSDK 的類庫,Src 包含集成微信和新浪微博需要的回調,Res 是 開發者信息示例,而Sample 則包含一個完整的操作演示。 Libs 里具體包括三個文件夾,分別是ShareSDK 的全局依賴庫、ShareSDK 當前支持的 所有平台工具庫和ShareSDK 可視化UI 的一些支持庫。「全局依賴庫」是集成ShareSDK 的基礎,ShareSDK 的任何平台都依賴於這個庫,而「ShareSDK-GUI」提供的是一個側欄 控制項和一個快捷分享工具,以方便開發者更快速地集成ShareSDK。 2 快速集成 2-1 導入Libs 1) 將「Libs\Global-Dependences」下的jar 包復制到您的libs 目錄下。 2) 從「Libs\Platforms」中選擇您感興趣的平台,比方說「新浪微博」、「QQ 空間」、「騰訊 微博」等,復制相應的壓縮包您項目的libs 目錄下並解壓,解壓過程中如遇覆蓋提示, 請同意覆蓋。 3) 如果您決定使用ShareSDK 提供的快捷分享工具,請復制「Libs\ShareSDK-GUI」中復 制「cn.sharesdk.onekeyshare.jar」到您項目中。 4) 如果您的開發環境不能自動載入ShareSDK 的jar 包到您的項目中,請修改您項目 的構建路徑,將上述jar 包添加到您的項目中。下圖以Eclipse 為例,展示添加後的效果: 2-2 添加代碼 1) 打開您項目的入口Activity,在其onCreate 中插入下面的代碼: ? 1 AbstractWeibo.initSDK(this); 這行代碼用於初始化ShareSDK,必須在程序啟動之時調用。 2)使用下面的代碼,調用ShareSDK 快捷分享功能: 分享時Notification 的圖標 ? 01 02 03 04 05 06 07 08 09 Intent i = new Intent(this, ShareAllGird.class); // 分享時Notification 的圖標 i.putExtra("notif_icon", R.drawable.ic_launcher); // 分享時Notification 的標題 i.putExtra("notif_title", getString(R.string.app_name)); // 分享內容的標題(僅部分平台需要此欄位) i.putExtra("title", "ShareSDK Demo"); // 分享內容的文本 i.putExtra("text", "share at: " + System.currentTimeMillis()); 10 11 12 13 14 15 // 分享內容的本地圖片路徑(為null 或文件不存在表示不分享圖片) i.putExtra("image", Environment.getExternalStorageDirectory () + "/ssdk.png"); // 分享內容的網路圖片地址(僅部分平台需要此欄位) i.putExtra("image_url", "http://sharesdk.cn/Public/Frontend/images/logo.png"); // 設置是否跳轉內容編輯頁面,true 表示不跳轉,不傳遞表示false(跳轉) i.putExtra("silent", silent); startActivity(i); 3) 如果您的項目中集成微信平台,請將「Sample/src/cn/sharesdk/demo」中的「wxapi」 目錄復制到您的項目主包下。 4) 如果您的項目中集成微博平台,請將「Sample/src」中的「com」目錄復制到您的項目 中。 2-3 添加開發者信息 ShareSDK 使用統一的格式管理您在不同平台上注冊的開發者信息。這些信息都存放在 您項目的「assets/ShareSDKDevInfor.xml」中。請到「Res」中將ShareSDKDevInfor.xml 復 制到您項目的對應位置,打開文件,然後根據不同的平台的數據,如下面的例子所示, 替換您在這個平台上的開發者信息: ? 1 2 3 4 5 6 7 2-4 配置AndroidManifest.xml 1) 請在您項目的AndroidManifest.xml,添加了如下的所有許可權: ? 1 2 3 4 5 6 7 8 這些許可權將允許您的項目和ShareSDK 獲取連接網路的許可權、獲取您的設備網路狀態的 許可權、實現https 安全連接的許可權、讀取手機設備狀態的許可權和保存必要配置的許可權。 一般來說,即便不集成ShareSDK,大部分的項目也都會注冊申請這些許可權。 2)在application 下注冊下面的Activity: ? 1 2 3 4 5 6 7 3)如果您的項目集成為微信和新浪微博,在application 下注冊下面的Activity: ? 01 02 03 04 05 06 07 08 09 104)如果您的項目集微信,在application 下注冊下面的Activity: ? 1 2 3 4 5 5)如果您使用ShareSDK 的快捷分享工具,在application 下注冊下面的Activity: ? 01 02 03 04 05 06 07 08 09 2-5 簽名 對於ShareSDK 的大部分平台,只要您將其jar 包和依賴集成到您的項目以 後就可以開始進行工作了。但是對於微信的兩個平台卻不行。因為微信開放平台要求 android 的第三方開發者需要提供自己項目的信息和簽名指紋數據。為了演示分享功能 Sample 包中攜帶了一個"demokey.keystore"的keystore 文件,其密碼是「123456」,如 果您在調試SSDKDemo 的時候集成了微信的平台,就需要使用這個keystore 對apk 進 行簽名,之後才能嘗試微信的分享。 3 主要功能解釋 ShareSDK 使用同一的介面實現不同平台的同類操作,如:授權、分享、關注等等。因 此開發者可以在不理會平台差異的情況下,簡單使用一句代碼完成不同平台的各種操作。 3-1 獲取已集成的平台列表 下面的代碼演示獲取已經集成到您項目中的ShareSDK 平台列表: ? 1 AbstractWeibo[] weiboList = AbstractWeibo.getWeiboList(context) 返回的列表中平台的排列順序依照您在ShareSDKDevInfor.xml 中為其配置的SortId 來 定。 請注意,此方法在第一次調用的時候可能會比較耗時,因此不建議在主線程中調用。 3-2 通過名字獲取指定平台實例 除了getWeiboList 的方法可以獲取到平台實例以外,如果您想單獨獲取某一個平台的實 例,還可以利用下面的方法,若獲取騰訊微博的實例: ? 1 AbstractWeibo weibo = AbstractWeibo.getWeibo(context, TencentWeibo.NAME); 其中的,其中的TencentWeibo.NAME 是騰訊微博平台的靜態欄位,每一個平台都有一 個NAME 的欄位,表示其名字。 3-3 設置操作回調 不論利用ShareSDK 進行何種操作,如果希望得到操作的結果,都必須為執行操作的平 台設置WeiboActionListener 的回調。下面的代碼演示對騰訊微博綁定 WeiboActionListener 的方法: ? 01 02 03 04 05 06 07 08 09 10 11 12 13 14 AbstractWeibo weibo = AbstractWeibo.getWeibo(context, TencentWeibo.NAME); weibo.setWeiboActionListener( new WeiboActionListener() { public void onError(AbstractWeibo weibo, int action, Throwable t) { // 操作失敗的處理代碼 } public void onComplete(AbstractWeibo weibo, int action, HashMap res) { // 操作成功的處理代碼 } public void onCancel(AbstractWeibo weibo, int action) { // 操作取消的處理代碼 } } ); 3-4 授權 手動授權並不是必要的操作,但是ShareSDK 提供手動的授權操作,如下面的代碼演示 新浪微博的授權操作: ? 1 2 3 AbstractWeibo weibo = AbstractWeibo.getWeibo(context, SinaWeibo.NAME); weibo.setWeiboActionListener(waListener); weibo.authorize(); 授權結果將通過WeiboActionListener 介面返回。 3-5 獲取用戶資料 下面的代碼演示新浪微博獲取資料的方法,其他的平台(微信除外)也支持類似的操作: ? 1 2 3 String account = "3189087725"; AbstractWeibo weibo = AbstractWeibo.getWeibo(context, SinaWeibo.NAME); weibo.setWeiboActionListener(waListener); weibo.showUser(account); 其中account 是准備獲取資料的帳號,如果account 為null,則表示獲取授權賬戶自己 的資料。 獲取資料前ShareSDK 會自行判斷平台是否已經授權,若未授權,會自行執行授權操作。 3-6 分享 下面的代碼演示通用的分享操作(QQ 空間、印象筆記請參考另外更合適其平台特性的 介面): ? 1 2 3 4 5 String text = 「測試分享的文本」; String image = 「/mnt/sdcard/測試分享的圖片.jpg」 ; AbstractWeibo weibo = AbstractWeibo.getWeibo(context, SinaWeibo.NAME); weibo.setWeiboActionListener(waListener); weibo.share(text, image); 其中的text 是分享的文本內容,image 是分享圖片的本地路徑。 微信好友和微信朋友圈的分享,應該使用新的分享介面,具體操作可以參考Sample 中 的相關例子,下面的例子展示使用微信分享網頁的方法: ? 1 2 3 4 5 6 7 8 AbstractWeibo weibo = AbstractWeibo.getWeibo(menu.getContext(), Wechat.NAME); weibo.setWeiboActionListener(this); String title = "這是標題"; String text = "這是文本內容"; String url = "http://sharesdk.cn"; String thumbUrl = "/mnt/sdcard/網頁縮略圖.jpg"; weibo.share(AbstractWeibo.SHARE_WEBPAGE, title, text, url, thumbUrl); 其中的share(int, Object…)方法是新版本添加的分享介面,暫時支持微信兩個平台的分 享,但後續版本的分享功能會往這個方法遷移。 QQ 空間調用下面的介面更適合其平台特性: ? 1 2 3 4 5 6 String title = 「測試分享的標題」 String text = 「測試分享的文本」; String imageUrl = 「[url]http://www.someserver.com/[/url]測試分享的圖片.jpg」 AbstractWeibo weibo = AbstractWeibo.getWeibo(context, QZone.NAME); weibo.setWeiboActionListener(waListener); weibo.share(title, null, null, text, imageUrl, "ShareSDK", "http://www.sharesdk.cn"); 對於介面的詳細解釋,請參考QQ 登錄平台的add_share 介面。 印象筆記的分享內容需要攜帶筆記標題,因此調用下面的介面更為合適: ? 1 2 3 4 5 6 String title = 「測試分享的標題」 String text = 「測試分享的文本」; String image = 「/mnt/sdcard/測試分享的圖片.jpg」 AbstractWeibo weibo = AbstractWeibo.getWeibo(context, Evernote.NAME); weibo.setWeiboActionListener(waListener); weibo.save(title, text, image); 對於印象筆記,分享的share 介面依然可用,但是更好的介面是save。 執行分享前ShareSDK 會自行判斷平台是否已經授權,若未授權,會自行執行授權操作。 信息和郵件分享功能使用send 介面,具體例子如下: ? 1 2 3 4 5 6 7 String address = 」10086」; String title = 「測試分享的標題」 String text = 「測試分享的文本」; String image = 「/mnt/sdcard/測試分享的圖片.jpg」 AbstractWeibo weibo = AbstractWeibo.getWeibo(context, ShortMessage.NAME); weibo.setWeiboActionListener(waListener); ((ShortMessage) weibo).send(address, title, text); 簡訊的分享只支持SMS 分享,如果直接分享MMS,則分享結果無法獲取。至於郵件, 不管分享方式如何,都無法直接獲取分享結果。 執行分享前ShareSDK 會自行判斷平台是否已經授權,若未授權,會自行執行授權操作。 3-7 關注指定用戶 當前的ShareSDK 已經實現了新浪微博和騰訊微博的關注功能,下面的代碼演示騰訊微 博的關注操作: ? 1 2 3 4 String account = "shareSDK"; AbstractWeibo weibo = AbstractWeibo.getWeibo( context,TencentWeibo.NAME); weibo.setWeiboActionListener(waListener); weibo.followFriend(account); 執行關注前ShareSDK 會自行判斷平台是否已經授權,若未授權,會自行執 行授權操作。 3-8 獲取平台資料庫 ShareSDK 將每一個平台的授權數據都緩存在SharedPreferences 中,並且相互獨立。 如果你希望獲取任何一個平台的授權數據,可以像下面這樣子做: ? 1 2 3 4 AbstractWeibo weibo = AbstractWeibo.getWeibo(this, TencentWeibo.NAME); String accessToken = weibo.getDb().getToken(); String openId = weibo.getDb().get("openid"); // 接下來執行你要的操作 不同平台都會緩存access token 等信息,可以通過getToken()或者setToken()進行操 作。此外,開發者還可以通過直接get()某個欄位的辦法,獲取其數據,如上面通過「openid」 欄位獲取到騰訊微博的openId。 3-8 取消授權 下面的代碼演示新浪微博取消授權的操作: ? 1 2 AbstractWeibo weibo = AbstractWeibo.getWeibo(context, SinaWeibo.NAME); weibo.removeAccount(); 此介面不需要WeiboActionListener,所以直接調用即可。
C. ios 中第三方分享 是怎麼 實現的
(1)官方下載ShareSDKiOS2.8.8
D. sharesdk for web 怎麼只利用登錄功能
使用ShareSDK步驟 1. ShareSDK官網,創建應用 獲取Key 2. ShareSDK官網,下載SDK 3. 使ShareSDK的DEMO正常運行 (類庫:ShareSDK for Android demo:ShareSDK for Android Sample) 4.創建新的項目 5.去各平台注冊key!
E. 如何查看ShareSDK返回的錯誤碼
使用ShareSDK步驟 1. ShareSDK官網,創建應用 獲取Key 2. ShareSDK官網,下載SDK 3. 使ShareSDK的DEMO正常運行 (類庫:ShareSDK for Android demo:ShareSDK for Android Sample) 4.創建新的項目 5.去各平台注冊key!
步驟如下:
打開網站或者要知道這個有沒有設置404的網站
在網站的域名後邊一個不存在的路徑
例如:「」這樣一個不存在的路徑
如果設置了404頁面會提升你這個頁面不存在點擊返回首頁或者等待幾秒返回
如果沒有設置404錯誤頁面輸入錯誤的路徑會顯現一下英文出現在網頁上,沒有返回首頁的選項和提升
如果是要做網站優化建議做上404頁面利於用戶的體驗
F. android sharesdk 分享成功執行的什麼方法
使用ShareSDK步驟
1. ShareSDK官網,創建應用 獲取Key
2. ShareSDK官網,下載SDK
3. 使ShareSDK的DEMO正常運行
(類庫:ShareSDK for Android
demo:ShareSDK for Android Sample)
4.創建新的項目
5.去各平台注冊key
新浪微博:
a.證書簽名需要個人證書導出項目時獲取到
MD5 : 91:F0:5B:CE:67:58:F1:A1:E8:70:A4:F3:FA:5F:87:1B
證書格式為小寫字母並不含:
b.授權回調頁:https //api weibo com/oauth2/default.html
6.sample里所有的圖片以及values拷入當前新的項目:
此時需要修改 main_activity.xml and menu.xml 中跟 @String/ 有關的信息!
7.sample里asset里Sharesdk.xml拷入當前新的項目,並且修改指定內容
RedirectUrl:如果指定授權回調頁,就填寫回調頁,如沒有,就填寫應用網址
8.需要把sample里mainifest中的許可權拷入當前新的項目
9.sample里mainifest中的ShareSDKUIShell,activity注冊到當前新的項目中,代碼如下:
<activity
android:name="cn.sharesdk.framework.ShareSDKUIShell"
android:theme="@android:style/Theme.Translucent.NoTitleBar"android:configChanges="keyboardHidden|orientation|screenSize"android:windowSoftInputMode="stateHidden|adjustResize" >
</activity>
10.拷入需要用到的jar包
必拷:mframework.jar
必拷:ShareSDK-Core-2.3.8jar
分享指定平台:
ShareSDK-XXX.jar
11.將onkeyshare包拷貝到當前項目中
分享步驟:
***************************
1.初始化ShareSDK
ShareSDK.init(this);
2.設置指定平台
Platform p=ShareSDK.getPlatform(XXX.NAME);
3.設置平台監聽器
p.setPlatform
AcitonListener{
1.error
2.complete
3.cancel
}
4.進行授權
p.rauthorize();
5.重寫平台監聽器中的complete
獲取某平台參數對象
Platform.ShareParams ps=
new XXX.ShareParams();
添加要分享的數據
ps.setText/setImageUrl/set..
G. 如何在微信里一鍵喚醒實現App
由於微信已經占據了大家大部分時間,作為推廣app來說是再好不過,用戶如果成功打開了app已經算成功的第一步,如何吸引用戶是內容的問題,但是當你想讓用戶在app內進行更多的操作的時候,怎麼先讓用戶在微信內直接喚醒app來提高app的使用率呢?
傳統的方法有一下幾種:
1,微信內部的白名單,可以把自己的app加到白名單里,你就可以暢通無阻。但不是微信的親兒子恐怕難以實現。
2,應用寶,可以上架應用寶,在微信瀏覽器內點擊「立即下載」,等微信內跳轉到應用寶,應用寶跟APP store有合作,自動點擊並且跳轉至下載詳情頁,安裝了用戶點擊【打開】按鈕,就可以喚醒app了。但是此舉操作麻煩不適合用在推廣上。
3, 微信右上角有個「更多」,點擊後選擇在瀏覽器中打開,帶著參數跳轉到瀏覽器中,可以判定是否安裝、是否登錄等動作了。
以上三種基本可以勸退,傳統的走不通,這時候就要用到微信喚起app介面,簡單來說就是點擊鏈接或二維碼直接可以喚起app,跳過微信打開app,避免被攔截,這個介面可以說實用性很高,給推廣app 的人員來說帶來了很大的便捷。
H. android sharesdk分享微信小圖標怎麼去掉
如何在Cocos2d-x中集成安卓版微信SDK 方法/步驟 1.如果能在Cocos2d-x中集成微信SDK,讓游戲能分享給好友或者朋友圈,那對游戲推廣將會是非常有利的。好了,本文就是手把手地教大夥如何在Cocos2d-x中集成微信SDK。 先看下效果分享給好友,點擊即可跳轉鏈接: 分享到朋友圈,點擊即可跳轉鏈接: 2.環境 OS: Mac OSX IDE: Xcode v5.11 and Eclipse ADT v22.3 Android SDK:4.3 Adnroid NDK:r9d Cocos2d-x 3.2release 3.創建Cocos2d-x工程這里不再詳述,網上的資料多如牛毛了。這里我按自己習慣的方式來。(1)命令行創建Cocos2dxWechat項目 $ cocos new -p com.fusijie.cocos2dxwechat -l cpp -d . Cocos2dxWechat (2)交叉編譯生成so文件 $ cd Cocos2dxWechat/proj.android/ $ ./build_native.py (3)導入Eclipse生成APK導入libcocos2dx項目和Cocos2dxWechat項目到Eclipse中。在真機中成功運行Cocos2dxWechat.apk。4.申請創建微信應用這一步主要是在微信開放平台上申請創建移動應用,獲取AppID。微信開放平台的網址(1)注冊帳號,進入管理中心,點擊創建移動應用。(2)第一步是填寫應用名,描述,圖標等等。如下圖。 (3)填寫應用官網,勾選Android應用,填寫簽名,包名等等。如下圖。 注意:這里需要特別注意的是應用簽名這一項。在第三步的時候,真機中成功運行Cocos2dxWechat.apk之後,我們需要從微信開放平台下載一個簽名生成軟體GenSignature 安裝簽名生成後,打開軟體輸入游戲包名獲取即可。 這里的簽名和游戲的包名和keystore是相關聯的,如果修改了包名或者更換了keystore,必須同步更新微信開放平台管理中心的信息,防止失效。本示例採用的是debug簽名。在完成以上工作後,提交審核即可。說是7天,實際上一般1~2天就審核過了。5.集成微信SDK剛才都是鋪墊,這里開始才是進入主題了。要在Cocos2d-x調用微信安卓SDK,Jni跑不掉的。這里只演示如何進行分享到朋友圈和分享給好友,微信SDK還有很多高級的功能,如支付,收藏等等介面,有需要自行參考文檔(移動應用開發)進行開發。 這里主要分成3部分來解釋: 微信SDK下載,jar包導入 Android代碼 C++代碼 (1)下載微信SDK (2)打開下載的Android_SDK.zip。解壓,將lib目錄下的libammsdk.jar拷到Cocos2dxWechat項目下的libs目錄。(3)右鍵單擊工程,選擇Build Path中的Configure Build Path...,選中Libraries這個tab,並通過Add Jars...導入工程libs目錄下的libammsdk.jar文件。 (4)在AppActivity中添加成員變數 private static final String APP_ID = "wx81115d2aa55710fa";//AppID,從第四步獲取 private static IWXAPI api;//微信API介面 private static AppActivity instance;//類靜態實例,為了方便後面靜態函數的調用 (5)注冊到微信打開AppActivity,在onCreate()中調用regToWX()注冊到微信 protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); instance = this; regToWX(); } private void regToWX(){ api = WXAPIFactory.createWXAPI(this, APP_ID, true); api.registerApp(APP_ID); } (6)由於這里採用的分享示例傳遞了一張icon,所以需要額外的一個bitmap的解析類Util類,這個類可以到微信官方SDK demo下載,也可以在本示例中下載(早期的SDK版本這個類是集成在微信SDK中)。icon放在res目錄下的drawable目錄,我這里偷個懶直接使用了應用icon。(7)分享給好友 public static void sendMsgToFriend(){ if(api.openWXApp()) { WXWebpageObject webpage = new WXWebpageObject(); webpage.webpageUrl = ""; WXMediaMessage msg = new WXMediaMessage(webpage); msg.title = "Tittle"; msg.description = "Description"; Bitmap thumb = BitmapFactory.decodeResource(instance.getResources(), R.drawable.icon); msg.thumbData = Util.bmpToByteArray(thumb, true); SendMessageToWX.Req req = new SendMessageToWX.Req(); req.transaction = buildTransaction("webpage"); req.message = msg; req.scene = SendMessageToWX.Req.WXSceneSession; api.sendReq(req); } else { Toast.makeText(instance, "未安裝微信", Toast.LENGTH_SHORT).show(); } } (8)分享到朋友圈 public static void sendMsgToTimeLine(){ if(api.openWXApp()) { if(api.getWXAppSupportAPI() >= 0x21020001) { WXWebpageObject webpage = new WXWebpageObject(); webpage.webpageUrl = ""; WXMediaMessage msg = new WXMediaMessage(webpage); msg.title = "Tittle"; msg.description = "Description"; Bitmap thumb = BitmapFactory.decodeResource(instance.getResources(), R.drawable.icon); msg.thumbData = Util.bmpToByteArray(thumb, true); SendMessageToWX.Req req = new SendMessageToWX.Req(); req.transaction = buildTransaction("webpage"); req.message = msg; req.scene = SendMessageToWX.Req.WXSceneTimeline; api.sendReq(req); } else{ Toast.makeText(instance, "微信版本過低", Toast.LENGTH_SHORT).show(); } } else { Toast.makeText(instance, "未安裝微信", Toast.LENGTH_SHORT).show(); } } 其中buildTransaction()用於生成一個唯一的會話標識符。 private static String buildTransaction(final String type) { return (type == null) ? String.valueOf(System.currentTimeMillis()) : type + System.currentTimeMillis(); } 代碼不難,所以不再逐行解釋,可以參考SDK文檔。(9)JNI調用在Classes目錄下新建一個WeixinShare類,主要包含2個靜態函數: void WeiXinShare::sendToFriend() { #if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID) //判斷當前是否為Android平台 JniMethodInfo minfo; bool isHave = JniHelper::getStaticMethodInfo(minfo,"org/cocos2dx/cpp/AppActivity","sendMsgToFriend", "()V"); if (!isHave) { log("jni:sendMsgToFriend is null"); }else{ //調用此函數 minfo.env->CallStaticVoidMethod(minfo.classID, minfo.methodID); } #endif } void WeiXinShare::sendToTimeLine() { #if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID) //判斷當前是否為Android平台 JniMethodInfo minfo; bool isHave = JniHelper::getStaticMethodInfo(minfo,"org/cocos2dx/cpp/AppActivity","sendMsgToTimeLine", "()V"); if (!isHave) { log("jni:sendMsgToTimeLine is null"); }else{ //調用此函數 minfo.env->CallStaticVoidMethod(minfo.classID, minfo.methodID); } #endif } (10)Cocos2d-x使用這個就比較簡單了,只要包含這個WeiXinShare類,調用這兩個靜態函數即可。 void HelloWorld::menuCloseCallback(Ref* pSender) { #if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID) //WeiXinShare::sendToFriend(); WeiXinShare::sendToTimeLine(); #endif } (11)Android.mk的修改最後不要忘記修改Android.mk文件。 復制代碼 LOCAL_SRC_FILES := hellocpp/main.cpp \ ../../Classes/AppDelegate.cpp \ ../../Classes/HelloWorldScene.cpp \ ../../Classes/WeiXinShare.cpp (12)重新交叉編譯,打包為APK即可6.總結本文寫的比較詳細,但是也忽略了比如如何接收微信的請求及返回值的說明以及如何進行混淆等等,算是一個初級教程吧。主要是面向對jni調用,第三方安卓sdk集成不太了解的朋友。這里雖然只是針對微信sdk的部分功能集成進行說明,但是道理都是共通的,如何集成微博分享,如何集成第三方廣告等等,用類似的方法都可以實現。
I. Android 中如何集成vk官方平台分享
就是將一些文本分享給你的微信好友或者微信的朋友圈。
由於之前有過做新浪微博、QQ、人人網第三方登錄的經驗,所以我很自然的就去微信的開發者平台去下SDK,注冊我的應用。麻煩的事情就來了。
微信的官方demo想運行起來真心難啊,而且官網上面居然資料很少。坑。。。。。。。。
運行微信的官方demo
下面我來說一下運行微信的官方demo:
首先去開發者平台的資源中心-->點擊資源下載-->選擇android資源下載-->下載範例代碼(HelloWeixin@Android)。
1、將該項目導入eclipse。
2、導入的目錄結構
3、現在運行肯定不行的。點擊Windows-->Preference
將demo中自帶的debug.keystore的路徑寫入到Custom debug deystore.
4、現在就可以運行了。
我真是服了微信了,做的簡直不人性化。用官方的集成簡直就是要命。
為什麼要設置Custom debug deystore??
因為微信有自身的限制。它需要你在注冊該應用的時候,填寫應用簽名,這個簽名就是你要最終打包發布使用的簽名的加密MD5值。具體就是你先用這個簽名打個包,然後在你的手機裡面運行,然後在微信的官網下一個獲取簽名MD5值的工具(開發者平台-->資源中心-->資源下載-->android資源下載-->簽名生成工具)。
官方的demo如果不設置這個Custom debug deystore,默認是使用eclipse提供的簽名,這個簽名和demo的本身的簽名肯定不一致的。所以我們分享的時候是不成功的。
再吐槽一下,微信的介面寫的真是奇葩,我分享不成功還返回ture,而且什麼提示都沒有,簡直垃圾。
ShareSDK集成步驟
經歷了這些,我以為應該可以自己集成了吧。可悲的是我整了兩天都沒成功分享。我確定了APPID、簽名、應用包名、應用名稱與注冊的信息一模一樣,TMD就是分享失敗。最後沒辦法,我只能放棄了官方的SDK,使用了ShareSDK集成。
不得不說真心強大。微信、易信、微博都可以集成。官網地址:http://mob.com/
點開選擇SDK下載-->ShareSDK社會化分享-->ShareSDK For Android.
強大的一筆。剛看見這個的時候不知從哪邊下手。
然後參考http://wiki.mob.com/Android_ShareSDK%E5%AE%8C%E6%95%B4%E7%9A%84%E9%9B%86%E6%88%90%E6%96%87%E6%A1%A3
這個集成文檔,基本就可以搞定了。大致說一下步驟:
首先必須要在ShareSDK裡面注冊你的應用,非常簡單的,只填寫基本信息就行,一路next獲取Appkey、App Secret。
1、下載SDK頁面選擇"打包下載SDK",這個下載的裡麵包含依賴的項目
將下載的文件解壓得到:
http://blog.csdn.net/dalancon/article/details/39322159
J. 電商App如何讓用戶直接打開商品詳情頁
但是作為程序員,開發者,如何在技術上助力電商平台的運營,引進更多的用戶呢。其實,問題也就是怎麼實現點擊分享商品的鏈接就能直接打開App。目前MobTech、Umeng、Jshare平台都有相關業務功能提供,推薦您使用MobTech的ShareSDK,可以做到Web到App的無縫鏈接,集成速度很快,操作便利,兼容性強,並且完成免費。