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

call result

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