提交 27b8ea3a authored 作者: JarvanMo's avatar JarvanMo

share music

上级 a5cc5f33
......@@ -11,6 +11,16 @@ import com.tencent.mm.opensdk.openapi.IWXAPI
import io.flutter.plugin.common.MethodCall
import io.flutter.plugin.common.MethodChannel
import io.flutter.plugin.common.PluginRegistry
import android.R.id.message
import com.tencent.mm.opensdk.modelmsg.SendMessageToWX
import com.jarvanmo.wechatplugin.utils.Util.bmpToByteArray
import android.graphics.Bitmap
import android.graphics.BitmapFactory
import android.R.attr.description
import com.tencent.mm.opensdk.modelmsg.WXMediaMessage
import com.tencent.mm.opensdk.modelmsg.WXMusicObject
/***
......@@ -51,6 +61,7 @@ object WeChatPluginHandler {
WeChatPluginMethods.SHARE_TEXT -> shareText(call,result)
WeChatPluginMethods.SHARE_MINI_PROGRAM -> shareMiniProgram(call, result)
WeChatPluginMethods.SHARE_IMAGE -> shareImage(call, result)
WeChatPluginMethods.SHARE_MUSIC -> shareMusic(call,result)
else -> {
result.notImplemented()
}
......@@ -123,6 +134,30 @@ object WeChatPluginHandler {
wxApi?.sendReq(req)
result.success(true)
}
private fun shareMusic(call: MethodCall, result: MethodChannel.Result) {
val music = WXMusicObject()
val musicUrl :String? = call.argument("musicUrl")
val musicLowBandUrl :String? = call.argument("musicLowBandUrl")
if (musicUrl != null){
music.musicUrl = musicUrl
}else{
music.musicLowBandUrl = musicLowBandUrl
}
val msg = WXMediaMessage()
msg.mediaObject = music
msg.title = call.argument("title")
msg.description = call.argument("description")
val thumbnail:String? = call.argument("thumbnail")
if(thumbnail != null && thumbnail.isNotBlank()){
msg.thumbData = WeChatThumbnailUtil.thumbnailForCommon(thumbnail,registrar)
}
val req = SendMessageToWX.Req()
setCommonArguments(call, req)
req.message = msg
wxApi?.sendReq(req)
result.success(true)
}
// private fun createWxImageObject(imagePath:String):WXImageObject?{
// var imgObj: WXImageObject? = null
......
......@@ -4,15 +4,12 @@ import android.content.res.AssetFileDescriptor;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import com.jarvanmo.wechatplugin.WechatPlugin;
import com.jarvanmo.wechatplugin.constant.WeChatPluginImageSchema;
import com.jarvanmo.wechatplugin.constant.WechatPluginKeys;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.net.URLConnection;
import java.security.Key;
import io.flutter.plugin.common.PluginRegistry;
import okhttp3.OkHttpClient;
......
......@@ -4,31 +4,32 @@ import 'package:flutter/services.dart';
import 'package:wechat_plugin/src/wechat_share_models.dart';
class WechatPlugin {
static const MethodChannel _channel =
const MethodChannel('wechat_plugin');
static const MethodChannel _channel = const MethodChannel('wechat_plugin');
static StreamController<Map> _responseStreamController = new StreamController.broadcast();
static Stream<Map> get weChatResponseUpdate=>_responseStreamController.stream;
static Future<int> init(String appId) async{
StreamController<Map> _responseStreamController = new StreamController.broadcast();
Stream<Map> get weChatResponseUpdate=>_responseStreamController.stream;
Future<int> init(String appId) async{
return await _channel.invokeMethod("initWeChat");
}
static void listen(){
void listen(){
_channel.setMethodCallHandler(_handler);
}
static void dispose(){
void dispose(){
_responseStreamController.close();
}
static Future<String> get platformVersion async {
Future<String> get platformVersion async {
final String version = await _channel.invokeMethod('getPlatformVersion');
return version;
}
static Future shareText(WeChatShareTextModel model) async{
return await _channel.invokeMethod("shareText",model.toMap());
Future shareText(WeChatShareTextModel model) async{
await _channel.invokeMethod("shareText",model.toMap());
}
static Future shareMiniProgram(WeChatShareMiniProgramModel model)async{
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论