android原生分享到微信好友和微信朋友圈

ps: 個人使用的環(huán)境是mac電腦蹬叭,android studio 3.0;

到微信公眾平臺申請應(yīng)用賬號

1.公眾平臺地址https://open.weixin.qq.com

  1. 申請流程,按照要求認(rèn)真填寫


    image.png

    image.png

    image.png
  2. 申請通過之后塑娇,查看應(yīng)用詳情會看到有一個appId,這個要記住,后面會用到


    image.png

生成上面需要填寫應(yīng)用簽名

  1. 創(chuàng)建一個keystore文件,這個keystore文件要記住鸳吸,后面會用到
```
keytool -genkey -alias wx_share -keyalg RSA -validity 10000 -keystore wx_share.keystore
```
image.png

image.png

image.png
  1. 上面步驟會得到wx_share.keystore文件脆荷,通過以下命令查看該文件的md5值


    image.png

    ps: 其實我們在申請的時候,需要填寫的應(yīng)用簽名就是該md5值轉(zhuǎn)成小寫策橘,并且去掉中間的冒號就得到了

  2. 我們通過以下方式進行驗證,先創(chuàng)建一個android應(yīng)用


    image.png
  1. 使用上面我們生成的keystore文件簽名該應(yīng)用得到apk文件,并安裝到手機上面


    image.png
  2. 下載簽名生成工具
    簽名生成工具下載(微信開發(fā)平臺)

    image.png

  1. 用簽名生成工具查看應(yīng)用的簽名


    image.png
  2. 我們看到上面得到的簽名就是我們之前說的md5轉(zhuǎn)成小寫亏狰,并且去掉中間的分號的到的役纹,把該簽名拷貝到我們注冊的時候需要的填寫的簽名的地方就可以了
  3. 到這里我們就完成注冊了,下面要用原生實現(xiàn)分享到微信好友或者朋友圈了

應(yīng)用程序配置微信分享相關(guān)配置

  1. 在AndroidManifest.xml配置相關(guān)權(quán)限
  <uses-permission android:name="android.permission.INTERNET"/>

  <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

  <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>

  <uses-permission android:name="android.permission.READ_PHONE_STATE"/>

  <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
  <uses-permission android:name="android.permission.ACTION_HANDLE_APP_REGISTER"/>
image.png
  1. 下載微信SDK

    • 在build.gradle文件中暇唾,添加如下依賴即可


      image.png
```
  dependencies {
  compile 'com.tencent.mm.opensdk:wechat-sdk-android-with-mta:+'
  }
```
  • 重新編譯依賴文件


    image.png

分享web網(wǎng)頁到朋友圈或者好友

  • 編碼過程
  public class MainActivity extends AppCompatActivity {
  private static final int THUMB_SIZE = 150; //設(shè)置分享到朋友圈的縮略圖寬高大小
  private static final String APP_ID = "wx17fa470c77da3077"; //應(yīng)用appId,就是我們注冊應(yīng)用成功之后得到的appId
  private IWXAPI api;
  private Button btnShare;

  @Override
  protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);

      api = WXAPIFactory.createWXAPI(this, APP_ID, true);//創(chuàng)建一個實例
      api.registerApp(APP_ID);//注冊實例
      btnShare = (Button) findViewById(R.id.btn_share);//獲取頁面中的某個按鈕
      btnShare.setOnClickListener(new View.OnClickListener() {
          @Override
          public void onClick(View v) {

              new Thread(new Runnable() {//創(chuàng)建一個子線程
                  @Override
                  public void run() {
                      try{
                          //遠程獲取的縮略圖的圖片地址
                          String url = "http://weixin.qq.com/zh_CN/htmledition/images/weixin/weixin_logo20f761.png";

                          WXWebpageObject webpage = new WXWebpageObject();
                          webpage.webpageUrl = "http://www.baidu.com";//分享出去的網(wǎng)頁地址
                          WXMediaMessage msg = new WXMediaMessage(webpage);
                          msg.title = "標(biāo)題";//分享的標(biāo)題
                          msg.description = "描述";//分享的描述信息
                          //獲取網(wǎng)絡(luò)圖片資源
                          Bitmap bmp = BitmapFactory.decodeStream(new URL(url).openStream());
                          //創(chuàng)建縮略圖
                          Bitmap thumbBmp = Bitmap.createScaledBitmap(bmp, THUMB_SIZE, THUMB_SIZE, true);
                          bmp.recycle();
                          msg.thumbData = bmpToByteArray(thumbBmp, true);

                          SendMessageToWX.Req req = new SendMessageToWX.Req();
                          req.transaction = String.valueOf(System.currentTimeMillis());
                          req.message = msg;

                          req.scene = SendMessageToWX.Req.WXSceneSession;//分享到微信好友
                          //req.scene = SendMessageToWX.Req.WXSceneTimeline;//分享到微信朋友圈
                          api.sendReq(req);
                      }catch (Exception e) {

                          e.printStackTrace();
                      }
                  }
              }).start();
          }
      });

  }

  public static byte[] bmpToByteArray(final Bitmap bmp, final boolean needRecycle) {
      ByteArrayOutputStream output = new ByteArrayOutputStream();
      bmp.compress(Bitmap.CompressFormat.JPEG, 100, output);
      if (needRecycle) {
          bmp.recycle();
      }

      byte[] result = output.toByteArray();
      try {
          output.close();
      } catch (Exception e) {
          e.printStackTrace();
      }

      return result;

  }
image.png
  • 運行應(yīng)用
    1. 當(dāng)編碼完成之后促脉,我們需要運行項目辰斋,這里有個主意點要主意,我們運行的時候android studio默認(rèn)用的是默認(rèn)的debug.keystore文件瘸味,并不是我們之前的創(chuàng)建的宫仗,所以我們要修改默認(rèn)簽名文件,過程如下


      image.png
    2. 上面我們已將創(chuàng)建了release配置文件旁仿,我們現(xiàn)在修改默認(rèn)的debug.keystore文件為我們剛剛創(chuàng)建的
image.png
  1. 將項目運行到我們手機上面藕夫,然后點擊分享按鈕,發(fā)現(xiàn)已經(jīng)調(diào)起微信分享了


    image.png
  2. 到這里枯冈,android原生調(diào)用微信分享已經(jīng)可以了毅贮,我們可以把該功能封裝成cordova插件,詳情請看該文章
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末尘奏,一起剝皮案震驚了整個濱河市滩褥,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌炫加,老刑警劉巖瑰煎,帶你破解...
    沈念sama閱讀 206,602評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異俗孝,居然都是意外死亡酒甸,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,442評論 2 382
  • 文/潘曉璐 我一進店門赋铝,熙熙樓的掌柜王于貴愁眉苦臉地迎上來插勤,“玉大人,你說我怎么就攤上這事革骨∫” “怎么了?”我有些...
    開封第一講書人閱讀 152,878評論 0 344
  • 文/不壞的土叔 我叫張陵苛蒲,是天一觀的道長。 經(jīng)常有香客問我绿满,道長臂外,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,306評論 1 279
  • 正文 為了忘掉前任喇颁,我火速辦了婚禮漏健,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘橘霎。我一直安慰自己蔫浆,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 64,330評論 5 373
  • 文/花漫 我一把揭開白布姐叁。 她就那樣靜靜地躺著瓦盛,像睡著了一般洗显。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上原环,一...
    開封第一講書人閱讀 49,071評論 1 285
  • 那天挠唆,我揣著相機與錄音,去河邊找鬼嘱吗。 笑死玄组,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的谒麦。 我是一名探鬼主播俄讹,決...
    沈念sama閱讀 38,382評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼绕德!你這毒婦竟也來了患膛?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,006評論 0 259
  • 序言:老撾萬榮一對情侶失蹤迁匠,失蹤者是張志新(化名)和其女友劉穎剩瓶,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體城丧,經(jīng)...
    沈念sama閱讀 43,512評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡延曙,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,965評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了亡哄。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片枝缔。...
    茶點故事閱讀 38,094評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖蚊惯,靈堂內(nèi)的尸體忽然破棺而出愿卸,到底是詐尸還是另有隱情,我是刑警寧澤截型,帶...
    沈念sama閱讀 33,732評論 4 323
  • 正文 年R本政府宣布趴荸,位于F島的核電站,受9級特大地震影響宦焦,放射性物質(zhì)發(fā)生泄漏发钝。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,283評論 3 307
  • 文/蒙蒙 一波闹、第九天 我趴在偏房一處隱蔽的房頂上張望酝豪。 院中可真熱鬧,春花似錦精堕、人聲如沸孵淘。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,286評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽瘫证。三九已至揉阎,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間痛悯,已是汗流浹背余黎。 一陣腳步聲響...
    開封第一講書人閱讀 31,512評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留载萌,地道東北人惧财。 一個月前我還...
    沈念sama閱讀 45,536評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像扭仁,于是被迫代替她去往敵國和親垮衷。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,828評論 2 345

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,510評論 25 707
  • afinalAfinal是一個android的ioc乖坠,orm框架 https://github.com/yangf...
    wgl0419閱讀 6,263評論 1 9
  • 一個90后老阿姨的笑點世界,惡搞是我的繩命 【一個焦慮】 醫(yī)生說治好拖延癥就要: 不用電腦不開電視不出門不用智能手...
    素菜包閱讀 590評論 0 5
  • 小朋友們顽分,今天是我們來卡樂咪的最后一天了徐许,也迎來了我們一月一次的社會實踐。 這次卒蘸,我們會去哪里呢~ 一周結(jié)束了雌隅,小...
    卡樂咪牧笛兒童之家周沖閱讀 429評論 0 0
  • 默然相愛,寂靜歡喜 喜歡一個人缸沃,你總是能想起她恰起。 喜歡一個人,你總想知道她此時此刻在做些什么趾牧。 喜歡一個人检盼,她的哭...
    漁休閱讀 436評論 0 0