美文网首页
android原生分享到微信好友和微信朋友圈

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

作者: 彧哥哥 | 来源:发表于2019-12-06 13:48 被阅读0次

    ps: 个人使用的环境是mac电脑,android studio 3.0;

    到微信公众平台申请ps: 个人使用的环境是mac电脑,android studio 3.0;

    到微信公众平台申请应用账号

    1.公众平台地址https://open.weixin.qq.com

    1. 申请流程,按照要求认真填写

      image image image
    2. 申请通过之后,查看应用详情会看到有一个appId,这个要记住,后面会用到

      image

    生成上面需要填写应用签名

    1. 创建一个keystore文件,这个keystore文件要记住,后面会用到

    keytool -genkey -alias wx_share -keyalg RSA -validity 10000 -keystore wx_share.keystore

    
    
    image image image
    1. 上面步骤会得到wx_share.keystore文件,通过以下命令查看该文件的md5值

      image

      ps: 其实我们在申请的时候,需要填写的应用签名就是该md5值转成小写,并且去掉中间的冒号就得到了

    2. 我们通过以下方式进行验证,先创建一个android应用

      image
    3. 使用上面我们生成的keystore文件签名该应用得到apk文件,并安装到手机上面

      image
    4. 下载签名生成工具
      签名生成工具下载(微信开发平台)

      image
    5. 用签名生成工具查看应用的签名

      image
    6. 我们看到上面得到的签名就是我们之前说的md5转成小写,并且去掉中间的分号的到的,把该签名拷贝到我们注册的时候需要的填写的签名的地方就可以了

    7. 到这里我们就完成注册了,下面要用原生实现分享到微信好友或者朋友圈了

    应用程序配置微信分享相关配置

    1. 在AndroidManifest.xml配置相关权限
      <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
    1. 下载微信SDK

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

        image

    dependencies {
    compile 'com.tencent.mm.opensdk:wechat-sdk-android-with-mta:+'
    }

    
    
    • 重新编译依赖文件

      image

    分享web网页到朋友圈或者好友

    • 编码过程
      public class MainActivity extends AppCompatActivity {
      private static final int THUMB_SIZE = 150; //设置分享到朋友圈的缩略图宽高大小
      private static final String APP_ID = "wx17fa470c77da3077"; //应用appId,就是我们注册应用成功之后得到的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);//创建一个实例
          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() {//创建一个子线程
                      @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";//分享出去的网页地址
                              WXMediaMessage msg = new WXMediaMessage(webpage);
                              msg.title = "标题";//分享的标题
                              msg.description = "描述";//分享的描述信息
                              //获取网络图片资源
                              Bitmap bmp = BitmapFactory.decodeStream(new URL(url).openStream());
                              //创建缩略图
                              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
    • 运行应用
      1. 当编码完成之后,我们需要运行项目,这里有个主意点要主意,我们运行的时候android studio默认用的是默认的debug.keystore文件,并不是我们之前的创建的,所以我们要修改默认签名文件,过程如下

        image
      2. 上面我们已将创建了release配置文件,我们现在修改默认的debug.keystore文件为我们刚刚创建的

    image
    1. 将项目运行到我们手机上面,然后点击分享按钮,发现已经调起微信分享了

      image
    2. 到这里,android原生调用微信分享已经可以了,我们可以把该功能封装成cordova插件,详情请看该文章

    作者:love_program
    链接:https://www.jianshu.com/p/f2696caa0c3f
    来源:简书
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
    账号

    1.公众平台地址https://open.weixin.qq.com

    1. 申请流程,按照要求认真填写

      image image image
    2. 申请通过之后,查看应用详情会看到有一个appId,这个要记住,后面会用到

      image

    生成上面需要填写应用签名

    1. 创建一个keystore文件,这个keystore文件要记住,后面会用到

    keytool -genkey -alias wx_share -keyalg RSA -validity 10000 -keystore wx_share.keystore

    
    
    image image image
    1. 上面步骤会得到wx_share.keystore文件,通过以下命令查看该文件的md5值

      image

      ps: 其实我们在申请的时候,需要填写的应用签名就是该md5值转成小写,并且去掉中间的冒号就得到了

    2. 我们通过以下方式进行验证,先创建一个android应用

      image
    3. 使用上面我们生成的keystore文件签名该应用得到apk文件,并安装到手机上面

      image
    4. 下载签名生成工具
      签名生成工具下载(微信开发平台)

      image
    5. 用签名生成工具查看应用的签名

      image
    6. 我们看到上面得到的签名就是我们之前说的md5转成小写,并且去掉中间的分号的到的,把该签名拷贝到我们注册的时候需要的填写的签名的地方就可以了

    7. 到这里我们就完成注册了,下面要用原生实现分享到微信好友或者朋友圈了

    应用程序配置微信分享相关配置

    1. 在AndroidManifest.xml配置相关权限
      <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
    1. 下载微信SDK

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

        image

    dependencies {
    compile 'com.tencent.mm.opensdk:wechat-sdk-android-with-mta:+'
    }

    
    
    • 重新编译依赖文件

      image

    分享web网页到朋友圈或者好友

    • 编码过程
      public class MainActivity extends AppCompatActivity {
      private static final int THUMB_SIZE = 150; //设置分享到朋友圈的缩略图宽高大小
      private static final String APP_ID = "wx17fa470c77da3077"; //应用appId,就是我们注册应用成功之后得到的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);//创建一个实例
          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() {//创建一个子线程
                      @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";//分享出去的网页地址
                              WXMediaMessage msg = new WXMediaMessage(webpage);
                              msg.title = "标题";//分享的标题
                              msg.description = "描述";//分享的描述信息
                              //获取网络图片资源
                              Bitmap bmp = BitmapFactory.decodeStream(new URL(url).openStream());
                              //创建缩略图
                              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
    • 运行应用
      1. 当编码完成之后,我们需要运行项目,这里有个主意点要主意,我们运行的时候android studio默认用的是默认的debug.keystore文件,并不是我们之前的创建的,所以我们要修改默认签名文件,过程如下

        image
      2. 上面我们已将创建了release配置文件,我们现在修改默认的debug.keystore文件为我们刚刚创建的

    image
    1. 将项目运行到我们手机上面,然后点击分享按钮,发现已经调起微信分享了

      image
    2. 到这里,android原生调用微信分享已经可以了,我们可以把该功能封装成cordova插件,详情请看该文章

    相关文章

      网友评论

          本文标题:android原生分享到微信好友和微信朋友圈

          本文链接:https://www.haomeiwen.com/subject/ncfegctx.html