微信分享的代码实现

来源:互联网 发布:set java environment 编辑:程序博客网 时间:2024/06/15 04:40


//导入依赖

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

//导入权限

<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android"    package="com.jo.jingou">    <uses-permission android:name="android.permission.INTERNET" />    <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />    <application        android:allowBackup="true"        android:icon="@mipmap/ic_launcher"        android:label="@string/app_name"        android:roundIcon="@mipmap/ic_launcher_round"        android:supportsRtl="true"        android:theme="@style/AppTheme">        <activity android:name=".MainActivity">            <intent-filter>                <action android:name="android.intent.action.MAIN" />                <category android:name="android.intent.category.LAUNCHER" />            </intent-filter>        </activity>        <!--分享,收藏,登录回调-->        <activity            android:name=".wxapi.WXEntryActivity"            android:exported="true"            android:launchMode="singleTop">            <intent-filter>                <action android:name="android.intent.action.VIEW" />                <category android:name="android.intent.category.DEFAULT" />                <data android:scheme="wxbd3e6bba8efbae73" />            </intent-filter>        </activity>        <activity android:name=".wxapi.WXPayEntryActivity"></activity>        <!--注册应用到微信-->        <receiver android:name=".AppRegister">            <intent-filter>                <action android:name="com.tencent.mm.plugin.openapi.Intent.ACTION_REFRESH_WXAPP" />            </intent-filter>        </receiver>    </application></manifest>



==================================WXEntryActivity
package com.jo.jingou.wxapi;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import com.jo.jingou.R;import com.tencent.mm.opensdk.modelbase.BaseReq;import com.tencent.mm.opensdk.modelbase.BaseResp;import com.tencent.mm.opensdk.openapi.IWXAPIEventHandler;/** * 分享,收藏,登录的回调 */public class WXEntryActivity extends AppCompatActivity implements IWXAPIEventHandler {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_wxentry);    }    /**     * 请求     * @param baseReq     */    @Override    public void onReq(BaseReq baseReq) {    }    /**     * 响应     * @param baseResp     */    @Override    public void onResp(BaseResp baseResp) {    }}
=====================================WXPayEntryActivity
package com.jo.jingou.wxapi;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import com.jo.jingou.R;/** * 支付回调处理 */public class WXPayEntryActivity extends AppCompatActivity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_wxpay_entry);    }}
==============================AppRegister
package com.jo.jingou;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import com.tencent.mm.opensdk.openapi.IWXAPI;import com.tencent.mm.opensdk.openapi.WXAPIFactory;/** * Created by liqy on 2017/12/8. */public class AppRegister extends BroadcastReceiver {    @Override    public void onReceive(Context context, Intent intent) {        final IWXAPI msgApi = WXAPIFactory.createWXAPI(context, null);        // 将该app注册到微信        msgApi.registerApp(Constants.APP_ID);    }}
======================================Constants
package com.jo.jingou;/** * Created by liqy on 2017/12/8. */public class Constants {    // APP_ID 替换为你的应用从官方网站申请到的合法appId    public static final String APP_ID = "wxbd3e6bba8efbae73";}
================================MainActivity
package com.jo.jingou;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import com.tencent.mm.opensdk.modelmsg.GetMessageFromWX;import com.tencent.mm.opensdk.modelmsg.SendMessageToWX;import com.tencent.mm.opensdk.modelmsg.WXMediaMessage;import com.tencent.mm.opensdk.modelmsg.WXTextObject;import com.tencent.mm.opensdk.openapi.IWXAPI;import com.tencent.mm.opensdk.openapi.WXAPIFactory;public class MainActivity extends AppCompatActivity {    private IWXAPI api;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        // acquire wxapi        api = WXAPIFactory.createWXAPI(this, Constants.APP_ID);        findViewById(R.id.hello).setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                shareText("第一次分享");            }        });    }    private void shareText(String text) {        // 初始化一个WXTextObject对象        WXTextObject textObj = new WXTextObject();        textObj.text = text;        // 用WXTextObject对象初始化一个WXMediaMessage对象        WXMediaMessage msg = new WXMediaMessage();        msg.mediaObject = textObj;        // 发送文本类型的消息时,title字段不起作用        // msg.title = "Will be ignored";        msg.description = text;        // 构造一个Req        SendMessageToWX.Req req = new SendMessageToWX.Req();        req.transaction = buildTransaction("text"); // transaction字段用于唯一标识一个请求        req.message = msg;        req.scene = SendMessageToWX.Req.WXSceneTimeline;//        req.openId = getOpenId();        // 调用api接口发送数据到微信        api.sendReq(req);    }    private String buildTransaction(final String type) {        return (type == null) ? String.valueOf(System.currentTimeMillis()) : type + System.currentTimeMillis();    }}
//=============================布局main
<?xml version="1.0" encoding="utf-8"?><android.support.constraint.ConstraintLayout 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.jo.jingou.MainActivity">    <TextView        android:id="@+id/hello"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="分享文字到微信"        android:background="#cccccc"        app:layout_constraintBottom_toBottomOf="parent"        app:layout_constraintLeft_toLeftOf="parent"        app:layout_constraintRight_toRightOf="parent"        app:layout_constraintTop_toTopOf="parent" /></android.support.constraint.ConstraintLayout>

//=========================wxentry
<?xml version="1.0" encoding="utf-8"?><android.support.constraint.ConstraintLayout 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.jo.jingou.wxapi.WXEntryActivity"></android.support.constraint.ConstraintLayout>

============================wxpay_entry
<?xml version="1.0" encoding="utf-8"?><android.support.constraint.ConstraintLayout 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.jo.jingou.wxapi.WXPayEntryActivity"></android.support.constraint.ConstraintLayout>

























 

原创粉丝点击