しばらく前にプロジェクトが着陸マイクロ手紙公衆の懸念番号にユーザーを導くために、マイクロチャネルのワンタイムサブスクリプションのメッセージを使用しています。使い捨てニュースサブスクリプションは、マイクロチャネルのユーザーへのメッセージ通知を送信する機会を得るために、マイクロチャネルのユーザー、サードパーティのアプリケーションによって許可され、マイクロチャネルのユーザーがパブリック数、すべての権限の時間に焦点を当てることはできませんが、開発者は最初のマイクロ文字を下げることができます通知メッセージ、メッセージは、マイクロチャネル通知サービスに表示されます。
マイクロチャネルのようなメッセージは、2つのステップに分けられます。
まず:マイクロチャンネルのユーザー認証は、一度ユーザーにメッセージを送信する機会を与えられました。
ランダムランダム=新しいランダム(); シーン=にRandom.nextInt(10000); IF(WXUtil.isWeixinAvilible(FreeLearnActivity.this)){ SubscribeMessage.ReqのREQ =新しいSubscribeMessage.Req()。 req.scene =シーン。 req.templateID = NeoConstantCode.WX_MODEL_ID。 iwxapi.sendReq(REQ)。 }他{ showToastMes( "没有安装微信")。 }
パラメータのシーン:開発者は、サブスクリプションのフィールド値を識別するために使用される0から10000の間のプラスチックの数を記入することができます。
れるtemplateId:オープンプラットフォームの経過後に提出メッセージテンプレートID、レビューアプリケーションを購読。
これら2つのパラメータは、許可されている場合には要求が認証が完了した後に、情報がでonResp WXEntryActivityでコールバックメソッドを返すために必要な、認証が成功した後、それがユーザーのOpenIDやその他の情報を返しますが、パラメータを渡す必要があります。
@Override 公共ボイドonResp(BaseResp baseResp){ super.onResp(baseResp)。 IF(baseResp.errCode == BaseResp.ErrCode.ERR_OK){ IF(ConstantsAPI.COMMAND_SUBSCRIBE_MESSAGE == baseResp.getType()){ 意図意図=新しいテント(NeoConstantCode.REFRESH_FREELEARN)。 intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)。 IF(android.os.Build.VERSION.SDK_INT> = 12){ intent.setFlags(32)。 } intent.putExtra( "OpenIDの"、baseResp.openId)。 NeoApplication.getContext()sendBroadcast(インテント)。 } } 仕上げ()。 }
それは小さなディップを書きに来たときに認証が完了した後に、先頭に戻って情報を受信するために、onResp()メソッドは、もちろん、すべてのニュースを受けていない、onCreatにアプローチしたい人
iwxapi = WXAPIFactory.createWXAPI(FreeLearnActivity.this、NeoConstantCode.WX_APP_ID)。 iwxapi.registerApp(NeoConstantCode.WX_APP_ID)。 iwxapi.handleIntent(getIntent()、この)。
しかし、ここで留意しなければ、不注意がWXEntryActivityマイクロチャネル文書のため、ピットに分類されますがActivityから継承されたと言い、IWXAPIEventHandlerを達成、その後、コールバック情報onResp()メソッドが、一般的なエンジニアリングが連合パーティ製ツールの友人などにアクセスします連合の友人のように、彼らは)WXCallBackActivity(から継承された)、マイクロチャネル構成文書が言っパッケージ化されたので、友人のリーグにアクセスした後、我々は唯一の(onRespを書き換える必要があることができ、我々は(super.onRespを忘れてはいけません)、あなたはコールバック情報を受け取ることができますので、もちろん、少しのジョブに必要なマイクロチャネルバージョン5.1.6 opensdkアクセスした後、またはrespType =ヌル、およびバージョン5.1.6の修正後、このバグの問題があるでしょう。コールバックを受け取りますメッセージは、ページに送信することができた後、次のステップを動作させるための彼らの必要性をOpenIDの。
第二:マイクロチャンネルのユーザーにメッセージを送信します。
https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET
インタフェースは、フィールドが上限と一日あたりの要求の数であるため、フロントエンドの要求は、推奨されていない文書が言うように、access_tokenは、サーバー上に保存推奨、当然のことながら、上記で要求を取得access_tokenは取得、リフレッシュを要求する各ユーザーは、上限に達すると、それが影響しますバック発行されたフィールドの遠位端へのインタフェースを介して;アプリケーションを使用後、GET access_tokenは次のインターフェイスを呼び出します
HTTP请求方式:ポスト
https://api.weixin.qq.com/cgi-bin/message/template/subscribe?access_token=ACCESS_TOKEN
この時点で、完全なエンドメッセージフローを送信するために、マイクロチャネルのユーザの成功の後パラメータ設定インターフェースの内容は、サービス通知を受信することができます。
小型ノート:あなたのアプリを共有したいとワンタイムメッセージを返すことを許可することはできません後、私はこのプロジェクトでメソッドを使用するには、フォアグラウンドにバックグラウンドで実行中のアプリケーションを切り替える以下のコードは、それを記録することです。
/ ** * / ActivityManagerを取得 ActivityManager ActivityManager =(ActivityManager)context.getSystemService(ACTIVITY_SERVICE); / *タスク(タスク)* /現在実行中の取得 一覧<ActivityManager.RunningTaskInfo> taskInfoList = activityManager.getRunningTasks(100); のために( taskInfo ActivityManager.RunningTaskInfo:taskInfoList){ / **本願の課題を見つけ、前部に切り替え* / IF(taskInfo.topActivity.getPackageName()に等しい(context.getPackageName())){。 activityManager.moveTaskToFront(taskInfo .ID、0); BREAK; } }
彼らが遭遇したどのような問題のレコード、是非、自分の小さな毎日の進歩に捧げ、合計します!
します。https://blog.csdn.net/qiaoxiaoguang/article/details/84192491