提交 3c7ec5a1 authored 作者: JarvanMo's avatar JarvanMo

call result

上级 709421fc
...@@ -4,7 +4,7 @@ import android.content.BroadcastReceiver; ...@@ -4,7 +4,7 @@ import android.content.BroadcastReceiver;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import com.jarvanmo.wechatplugin.config.WechatPluginConfig; import com.jarvanmo.wechatplugin.constant.WechatPluginKeys;
import com.tencent.mm.opensdk.openapi.IWXAPI; import com.tencent.mm.opensdk.openapi.IWXAPI;
import com.tencent.mm.opensdk.openapi.WXAPIFactory; import com.tencent.mm.opensdk.openapi.WXAPIFactory;
...@@ -14,6 +14,6 @@ public class AppRegister extends BroadcastReceiver { ...@@ -14,6 +14,6 @@ public class AppRegister extends BroadcastReceiver {
public void onReceive(Context context, Intent intent) { public void onReceive(Context context, Intent intent) {
final IWXAPI api = WXAPIFactory.createWXAPI(context, null); final IWXAPI api = WXAPIFactory.createWXAPI(context, null);
// 将该app注册到微信 // 将该app注册到微信
api.registerApp(WechatPluginConfig.appId); api.registerApp(WechatPluginKeys.appId);
} }
} }
package com.jarvanmo.wechatplugin package com.jarvanmo.wechatplugin
import com.jarvanmo.wechatplugin.config.WeChatPluginMethods import android.telecom.Call
import com.jarvanmo.wechatplugin.constant.CallResult
import com.jarvanmo.wechatplugin.constant.WeChatPluginMethods
import com.jarvanmo.wechatplugin.handler.WeChatPluginHandler import com.jarvanmo.wechatplugin.handler.WeChatPluginHandler
import com.tencent.mm.opensdk.openapi.WXAPIFactory import com.tencent.mm.opensdk.openapi.WXAPIFactory
import io.flutter.plugin.common.MethodChannel import io.flutter.plugin.common.MethodChannel
...@@ -13,7 +15,6 @@ class WechatPlugin(private var channel: MethodChannel,private var registrar: Reg ...@@ -13,7 +15,6 @@ class WechatPlugin(private var channel: MethodChannel,private var registrar: Reg
companion object { companion object {
@JvmStatic @JvmStatic
val TAG = "WeChatPlugin" val TAG = "WeChatPlugin"
val FILE_NOT_EXIST = "file not exists"
@JvmStatic @JvmStatic
fun registerWith(registrar: Registrar): Unit { fun registerWith(registrar: Registrar): Unit {
...@@ -25,6 +26,7 @@ class WechatPlugin(private var channel: MethodChannel,private var registrar: Reg ...@@ -25,6 +26,7 @@ class WechatPlugin(private var channel: MethodChannel,private var registrar: Reg
} }
override fun onMethodCall(call: MethodCall, result: Result): Unit { override fun onMethodCall(call: MethodCall, result: Result): Unit {
o
when { when {
WeChatPluginMethods.INIT == call.method -> { WeChatPluginMethods.INIT == call.method -> {
val api = WXAPIFactory.createWXAPI(registrar.context().applicationContext, call.arguments as String?) val api = WXAPIFactory.createWXAPI(registrar.context().applicationContext, call.arguments as String?)
...@@ -32,7 +34,7 @@ class WechatPlugin(private var channel: MethodChannel,private var registrar: Reg ...@@ -32,7 +34,7 @@ class WechatPlugin(private var channel: MethodChannel,private var registrar: Reg
WeChatPluginHandler.setWxApi(api) WeChatPluginHandler.setWxApi(api)
} }
WeChatPluginHandler.apiIsNull() -> { WeChatPluginHandler.apiIsNull() -> {
result.error("config your wxapi first", "config your wxapi first", null) result.error(CallResult.RESULT_API_NULL, "please config wxapi first", null)
return return
} }
call.method.startsWith("share")->{ call.method.startsWith("share")->{
......
package com.jarvanmo.wechatplugin.config;
public class WeChatPluginImageSchema {
public static final String SCHEMA_ASSETS ="assets://";
public static final String SCHMEA_HTTP = "http://";
public static final String SCHMEA_HTTPS = "https://";
public static final String SCHMEA_FILE = "file://";
}
package com.jarvanmo.wechatplugin.constant;
public class CallResult {
public static final String RESULT_DONE = "done";
public static final String RESULT_ERROR = "error";
public static final String RESULT_API_NULL = "wxapi not configured";
public static final String RESULT_WE_CHAT_NOT_INSTALLED = "wechat not installed";
public static final String RESULT_FILE_NOT_EXIST = "file not exists";
}
package com.jarvanmo.wechatplugin.constant;
public class WeChatPluginImageSchema {
public static final String SCHEMA_ASSETS = "assets://";
public static final String SCHMEA_HTTP = "http://";
public static final String SCHMEA_HTTPS = "https://";
public static final String SCHEMA_FILE = "file://";
}
package com.jarvanmo.wechatplugin.config; package com.jarvanmo.wechatplugin.constant;
/*** /***
* Created by mo on 2018/8/8 * Created by mo on 2018/8/8
......
package com.jarvanmo.wechatplugin.config; package com.jarvanmo.wechatplugin.constant;
/*** /***
* Created by mo on 2018/8/8 * Created by mo on 2018/8/8
* 冷风如刀,以大地为砧板,视众生为鱼肉。 * 冷风如刀,以大地为砧板,视众生为鱼肉。
* 万里飞雪,将穹苍作烘炉,熔万物为白银。 * 万里飞雪,将穹苍作烘炉,熔万物为白银。
**/ **/
public class WechatPluginConfig { public class WechatPluginKeys {
public static String appId =""; public static String appId ="";
public static final String SCENE = "scene"; public static final String SCENE = "scene";
public static final String TIMELINE = "timeline"; public static final String TIMELINE = "timeline";
......
package com.jarvanmo.wechatplugin.handler package com.jarvanmo.wechatplugin.handler
import android.graphics.BitmapFactory
import android.util.Log import android.util.Log
import com.jarvanmo.wechatplugin.WechatPlugin import com.jarvanmo.wechatplugin.WechatPlugin
import com.jarvanmo.wechatplugin.config.WeChatPluginImageSchema import com.jarvanmo.wechatplugin.constant.CallResult
import com.jarvanmo.wechatplugin.config.WeChatPluginMethods import com.jarvanmo.wechatplugin.constant.WeChatPluginImageSchema
import com.jarvanmo.wechatplugin.config.WechatPluginConfig import com.jarvanmo.wechatplugin.constant.WeChatPluginMethods
import com.jarvanmo.wechatplugin.constant.WechatPluginKeys
import com.jarvanmo.wechatplugin.utils.AssetManagerUtil import com.jarvanmo.wechatplugin.utils.AssetManagerUtil
import com.jarvanmo.wechatplugin.utils.FileUtil import com.jarvanmo.wechatplugin.utils.FileUtil
import com.jarvanmo.wechatplugin.utils.WeChatThumbnailUtil import com.jarvanmo.wechatplugin.utils.WeChatThumbnailUtil
...@@ -16,7 +16,6 @@ import io.flutter.plugin.common.MethodCall ...@@ -16,7 +16,6 @@ import io.flutter.plugin.common.MethodCall
import io.flutter.plugin.common.MethodChannel import io.flutter.plugin.common.MethodChannel
import io.flutter.plugin.common.PluginRegistry import io.flutter.plugin.common.PluginRegistry
import java.io.File import java.io.File
import java.net.URL
/*** /***
...@@ -48,6 +47,11 @@ object WeChatPluginHandler { ...@@ -48,6 +47,11 @@ object WeChatPluginHandler {
fun handle(call: MethodCall, result: MethodChannel.Result) { fun handle(call: MethodCall, result: MethodChannel.Result) {
if (wxApi!!.isWXAppInstalled){
result.error(CallResult.RESULT_WE_CHAT_NOT_INSTALLED,CallResult.RESULT_WE_CHAT_NOT_INSTALLED,null)
return
}
when (call.method) { when (call.method) {
WeChatPluginMethods.SHARE_TEXT -> shareText(call,result) WeChatPluginMethods.SHARE_TEXT -> shareText(call,result)
WeChatPluginMethods.SHARE_MINI_PROGRAM -> shareMiniProgram(call, result) WeChatPluginMethods.SHARE_MINI_PROGRAM -> shareMiniProgram(call, result)
...@@ -60,15 +64,16 @@ object WeChatPluginHandler { ...@@ -60,15 +64,16 @@ object WeChatPluginHandler {
private fun shareText(call: MethodCall, result: MethodChannel.Result) { private fun shareText(call: MethodCall, result: MethodChannel.Result) {
val textObj = WXTextObject() val textObj = WXTextObject()
textObj.text = call.argument(WechatPluginConfig.TEXT) textObj.text = call.argument(WechatPluginKeys.TEXT)
val msg = WXMediaMessage() val msg = WXMediaMessage()
msg.mediaObject = textObj msg.mediaObject = textObj
msg.description = call.argument(WechatPluginConfig.TEXT) msg.description = call.argument(WechatPluginKeys.TEXT)
val req = SendMessageToWX.Req() val req = SendMessageToWX.Req()
req.message = msg req.message = msg
setCommonArguments(call,req) setCommonArguments(call,req)
wxApi?.sendReq(req) wxApi?.sendReq(req)
result.success(true) result.success(true)
} }
...@@ -81,7 +86,7 @@ object WeChatPluginHandler { ...@@ -81,7 +86,7 @@ object WeChatPluginHandler {
val msg = WXMediaMessage(miniProgramObj) val msg = WXMediaMessage(miniProgramObj)
msg.title = call.argument("title") // 小程序消息title msg.title = call.argument("title") // 小程序消息title
msg.description = call.argument("description") // 小程序消息desc msg.description = call.argument("description") // 小程序消息desc
var thumbnail: String? = call.argument(WechatPluginConfig.THUMBNAIL) var thumbnail: String? = call.argument(WechatPluginKeys.THUMBNAIL)
thumbnail = thumbnail ?: "" thumbnail = thumbnail ?: ""
if (thumbnail.isNullOrBlank()) { if (thumbnail.isNullOrBlank()) {
...@@ -100,10 +105,10 @@ object WeChatPluginHandler { ...@@ -100,10 +105,10 @@ object WeChatPluginHandler {
} }
private fun shareImage(call: MethodCall, result: MethodChannel.Result) { private fun shareImage(call: MethodCall, result: MethodChannel.Result) {
val imagePath = call.argument<String>(WechatPluginConfig.IMAGE) val imagePath = call.argument<String>(WechatPluginKeys.IMAGE)
val imgObj = createWxImageObject(imagePath) val imgObj = createWxImageObject(imagePath)
if (imgObj == null) { if (imgObj == null) {
result.error(WechatPlugin.TAG,WechatPlugin.FILE_NOT_EXIST,imagePath) result.error(CallResult.RESULT_FILE_NOT_EXIST,CallResult.RESULT_FILE_NOT_EXIST,imagePath)
return return
} }
...@@ -116,7 +121,7 @@ object WeChatPluginHandler { ...@@ -116,7 +121,7 @@ object WeChatPluginHandler {
// //
// val thumbBmp = Bitmap.createScaledBitmap(bmp, THUMB_SIZE, THUMB_SIZE, true) // val thumbBmp = Bitmap.createScaledBitmap(bmp, THUMB_SIZE, THUMB_SIZE, true)
// bmp.recycle() // bmp.recycle()
msg.thumbData = WeChatThumbnailUtil.thumbnailForCommon(call.argument(WechatPluginConfig.THUMBNAIL), registrar) msg.thumbData = WeChatThumbnailUtil.thumbnailForCommon(call.argument(WechatPluginKeys.THUMBNAIL), registrar)
// //
val req = SendMessageToWX.Req() val req = SendMessageToWX.Req()
setCommonArguments(call,req) setCommonArguments(call,req)
...@@ -132,14 +137,14 @@ object WeChatPluginHandler { ...@@ -132,14 +137,14 @@ object WeChatPluginHandler {
val key = imagePath.substring(WeChatPluginImageSchema.SCHEMA_ASSETS.length, imagePath.length) val key = imagePath.substring(WeChatPluginImageSchema.SCHEMA_ASSETS.length, imagePath.length)
val assetFileDescriptor = AssetManagerUtil.openAsset(registrar,key,"") val assetFileDescriptor = AssetManagerUtil.openAsset(registrar,key,"")
imageFile = FileUtil.createTmpFile(assetFileDescriptor) imageFile = FileUtil.createTmpFile(assetFileDescriptor)
}else if (imagePath.startsWith(WeChatPluginImageSchema.SCHMEA_FILE)){ }else if (imagePath.startsWith(WeChatPluginImageSchema.SCHEMA_FILE)){
imageFile = File(imagePath) imageFile = File(imagePath)
} }
if(imageFile != null && imageFile.exists()){ if(imageFile != null && imageFile.exists()){
imgObj = WXImageObject() imgObj = WXImageObject()
imgObj.setImagePath(imagePath) imgObj.setImagePath(imagePath)
}else{ }else{
Log.d(WechatPlugin.TAG,WechatPlugin.FILE_NOT_EXIST) Log.d(WechatPlugin.TAG,CallResult.RESULT_FILE_NOT_EXIST)
} }
return imgObj return imgObj
...@@ -160,15 +165,15 @@ object WeChatPluginHandler { ...@@ -160,15 +165,15 @@ object WeChatPluginHandler {
} }
private fun getScene(value: String) = when (value.toLowerCase()) { private fun getScene(value: String) = when (value.toLowerCase()) {
WechatPluginConfig.TIMELINE -> SendMessageToWX.Req.WXSceneTimeline WechatPluginKeys.TIMELINE -> SendMessageToWX.Req.WXSceneTimeline
WechatPluginConfig.SESSION -> SendMessageToWX.Req.WXSceneSession WechatPluginKeys.SESSION -> SendMessageToWX.Req.WXSceneSession
WechatPluginConfig.FAVORITE -> SendMessageToWX.Req.WXSceneFavorite WechatPluginKeys.FAVORITE -> SendMessageToWX.Req.WXSceneFavorite
else -> SendMessageToWX.Req.WXSceneTimeline else -> SendMessageToWX.Req.WXSceneTimeline
} }
private fun setCommonArguments(call: MethodCall, req: SendMessageToWX.Req) { private fun setCommonArguments(call: MethodCall, req: SendMessageToWX.Req) {
req.transaction = call.argument(WechatPluginConfig.TRANSACTION) req.transaction = call.argument(WechatPluginKeys.TRANSACTION)
req.scene = getScene(call.argument(WechatPluginConfig.SCENE)) req.scene = getScene(call.argument(WechatPluginKeys.SCENE))
} }
} }
\ No newline at end of file
package com.jarvanmo.wechatplugin.utils; package com.jarvanmo.wechatplugin.utils;
import android.content.res.AssetFileDescriptor; import android.content.res.AssetFileDescriptor;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import com.jarvanmo.wechatplugin.config.WeChatPluginImageSchema; import com.jarvanmo.wechatplugin.constant.WeChatPluginImageSchema;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论