Tencent インスタント メッセンジャーを使用する
記録
導入された Tencent サードパーティ プラグインでポップアップ ウィンドウをカスタマイズする
タイトルの通り、プロジェクトは Tencent のインスタント メッセージング モジュールを導入しますが、主な機能はアプリ モジュールにあり、アプリケーション プラットフォームのレビューでは、Tencent のインスタント メッセージング モジュールにレポート機能が必要ですが、ユーザー情報などは基本的に存在します。アプリのメイン モジュールなので、ブリッジを作成する必要があります
ソリューション
1. まず 2 つのモジュール間の通信を完了します.
ネチズンが推奨する appjoint を
参照用に使用します.
https://blog.csdn.net/qq_23018457/article/details/110469916
非常に簡単です。これは一度だけです。このモジュールを対応する build.gradle に追加し、
インターフェイス クラス、実装クラスを記述し、メイン アプリ モジュールでインターフェイスを実装し、必要なサブモジュールでインターフェイスを呼び出します。方法
2
プロジェクトのカスタマイズ方法 プロジェクトにはすでにアクティビティ管理クラスがありますが、Tencent Instant Messaging のアクティビティが追加されていないため、対応するアクティビティ管理クラスの popactivity を追加する必要があります。 activity (ここでは my chatactivity) メソッドを使用し、現在のアクティビティを記録し (chatactivity で、外の世界が現在のアクティビティのコンテキストにアクセスできるメソッドを追加することを忘れないでください)、次にアクティビティ管理クラスで currentactivity メソッドを呼び出して chatactivity を取得します
。そのコンテキストを取得し、このコンテキストにダイアログを追加すると、その中の対応する情報が完成し、時間の関係で簡単なコードを貼り付けることができます.
これは、アプリ内のインターフェイス クラスを実装する実装クラスです。
@ServiceProvider
public class AppPublicInterface implements MyPublicInterface {
@Override
public void showJubakInfo(int type, String userTId, Object data) {
//这里要获得消息的内容和消息的发出者的id
//需要弹出一个确定框,让用户确认举报信息是否正确
ChatActivity currentActivity = (ChatActivity) ActivityManager.getInstance().currentActivity();
AlertDialog.Builder builder = new AlertDialog.Builder(currentActivity.getContext());
builder.setTitle("举报");
final EditText edit = new EditText(currentActivity.getContext());
builder.setView(edit);
if (type == 0) {
edit.setText("举报人: " + UserInfoInstance.getInstance().getRealName() + "\n举报内容: " + data.toString());
} else if (type == 32) {
edit.setText("举报人: " + UserInfoInstance.getInstance().getRealName() + "\n您举报的内容为图片,请耐心等待审核结果");
}else{
edit.setText("举报人: " + UserInfoInstance.getInstance().getRealName() + "\n您举报的内容为未知内容,请耐心等待审核结果");
}
edit.setFocusable(false);
edit.setEnabled(false);
edit.setTextAlignment(TEXT_ALIGNMENT_CENTER);
builder.setPositiveButton("提交", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
ReportPresenter tem = new ReportPresenter();
tem.report(userTId, data.toString());
}
});
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
builder.setCancelable(true); //设置按钮是否可以按返回键取消,false则不可以取消
AlertDialog dialog = builder.create(); //创建对话框
dialog.setCanceledOnTouchOutside(true); //设置弹出框失去焦点是否隐藏,即点击屏蔽其它地方是否隐藏
dialog.show();
}
}