Androidstudio集成微信分享网页

来源:互联网 发布:设计师用的软件 编辑:程序博客网 时间:2024/05/22 00:13

#AndroidStudio集成微信分享网页

##首先在微信开放平台创建应用,按照官网提示填写正确基本的信息

##然后填写平台信息,应用签名通过官网提供的签名工具生成,包名即是Android应用代码中的包名。填写完成之后,提交审核,等待应用审核通过之后获取到该应用的APPID等信息然后就可以进行开发了:

###1.下载微信的SDK,在Android studio中只需在build.gradle中添加依赖即可dependecices{compile ‘com.tencent.mm.opensdk:wechat-sdk-android-with-mta:+’}

###2.在Android程序中的androidmanifests.xml文件中添加权限支持到这里,前期准备工作已经完成了,接下来即是代码的编写过程了首先编写两个按钮用来测试

###接下来建立一个wxapi包,在包下建立一个WXEntryActivity类!

下面是我的分享代码(仅供参考):

布局文件Activity_main.xml:

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"

android:layout_height="match_parent"

tools:context="com.su.sharetowx.MainActivity">

<Button android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:id="@+id/hy"

android:onClick="hy"

android:text="分享到好友"/>

<Button android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:id="@+id/pyq"

android:onClick="pyq"

android:text="分享到朋友圈"/>

</LinearLayout>

WXEntryActivity:

package com.su.sharetowx.wxapi;

import android.app.Activity;

import android.os.Bundle;

import android.widget.Toast;

import com.tencent.mm.opensdk.modelbase.BaseReq;

import com.tencent.mm.opensdk.modelbase.BaseResp;

import com.tencent.mm.opensdk.openapi.IWXAPI;

import com.tencent.mm.opensdk.openapi.IWXAPIEventHandler;

import com.tencent.mm.opensdk.openapi.WXAPIFactory;

/**

*Created by Su on 2017/8/12.

*/

public class WXEntryActivity extends Activity implements IWXAPIEventHandler {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

IWXAPI api = WXAPIFactory.createWXAPI(this, "wx632deb0f8a31c686", false);

api.handleIntent(getIntent(),this);

finish();

}

@Override

public void onReq(BaseReq baseReq) {

}

@Override

public void onResp(BaseResp baseResp) {

String result;

switch (baseResp.errCode) {

case BaseResp.ErrCode.ERR_OK:

result = "分享成功";

break;

case BaseResp.ErrCode.ERR_USER_CANCEL:

result = null;

break;

default:

result = "分享失败";

break;

}

if (result != null) {

Toast.makeText(this, baseResp.errCode + result, Toast.LENGTH_SHORT).show();

}

}}

MainActivity:

package com.su.sharetowx;

/**

*Created by Su on 2017/8/12.

*/

import android.graphics.Bitmap;

import android.graphics.BitmapFactory;

import android.support.v7.app.AppCompatActivity;

import android.os.Bundle;

import android.view.View;

import android.widget.Toast;

import com.tencent.mm.opensdk.modelmsg.SendMessageToWX;

import com.tencent.mm.opensdk.modelmsg.WXMediaMessage;

import com.tencent.mm.opensdk.modelmsg.WXWebpageObject;

import com.tencent.mm.opensdk.openapi.IWXAPI;

import com.tencent.mm.opensdk.openapi.WXAPIFactory;

import java.io.ByteArrayOutputStream;

public class MainActivity extends AppCompatActivity {

private IWXAPI api;

private static final int THUMB_SIZE = 150;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

api = WXAPIFactory.createWXAPI(this, "你的APPID", false);

api.registerApp("你的APPID");//将应用注册到微信开放平台

}

public void hy(View v){

WXWebpageObject webpage = new WXWebpageObject();

webpage.webpageUrl = "分享的网址";

WXMediaMessage msg = new WXMediaMessage(webpage);

msg.title = "分享的标题";

msg.description ="分享的详情";

Bitmap bmp = BitmapFactory.decodeResource(getResources(),R.mipmap.ic_launcher);

Bitmap thumbBmp = Bitmap.createScaledBitmap(bmp, THUMB_SIZE, THUMB_SIZE, true);

bmp.recycle();//将分享的图片转化为bitmap

msg.thumbData = bmpToByteArray(thumbBmp, true);

SendMessageToWX.Req req = new SendMessageToWX.Req();

req.transaction = buildTransaction("webpage");//webpage为网页分享,其他请参考官网

req.message = msg;

req.scene = 0;//0是分享到好友,1是分享到朋友圈

api.sendReq(req);//将分享的信息调用api中的send方法发送到微信中

finish();

}

public void pyq(View v){

WXWebpageObject webpage = new WXWebpageObject();

webpage.webpageUrl = "分享的网址";

WXMediaMessage msg = new WXMediaMessage(webpage);

msg.title = "分享的标题";

msg.description ="分享的详情";

Bitmap bmp = BitmapFactory.decodeResource(getResources(),R.mipmap.ic_launcher);

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 = buildTransaction("webpage");

req.message = msg;

req.scene = 1;

api.sendReq(req);

finish();

}

/*bitmap转换为byte*/

public static byte[] bmpToByteArray(final Bitmap bmp, final boolean needRecycle) {

ByteArrayOutputStream output = new ByteArrayOutputStream();

bmp.compress(Bitmap.CompressFormat.PNG, 100, output);

if (needRecycle) {

bmp.recycle();

}

byte[] result = output.toByteArray();

try {

output.close();

} catch (Exception e) {

e.printStackTrace();

}

return result;

}

private String buildTransaction(final String type) {

return (type == null) ? String.valueOf(System.currentTimeMillis()) : type + System.currentTimeMillis(); }}

到这里微信分享已经完成啦,就可以该项目可以跑起来啦。微信开放平台demo下载以及签名工具下载地址:

https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1419319167&token=2449f19fa7a7e5b926ab1d92eb95450ac6b02b87&lang=zh_CN

需要注意的地方:

1.应用中的包名签名一定要与平台上的一致

2.当你的应用在重新审核后,但是因为资料的原因导致审核未通过,这是您的应用以审核之前的状态在运行,这个时候修改包名签名是不生效的,虽然平台上显示是修改成功的



1 0
原创粉丝点击