package com.yidianling.article.flutter import com.ydl.ydl_router.manager.YDLRouterManager import com.ydl.ydlcommon.utils.AppUtils import com.ydl.ydlcommon.view.dialog.YDLShareDialog import com.yidianling.common.tools.ToastUtil import io.flutter.app.FlutterActivity import io.flutter.plugin.common.MethodCall import io.flutter.plugin.common.MethodChannel /** * Created by harvie on 2019/9/6. */ class ArticlePlugin : MethodChannel.MethodCallHandler { companion object { const val CHANNEL: String = "lib/m_module/article" const val ACTION_TO_H5 = "action_to_h5" //跳转原生H5 const val ACTION_GET_COMMON_PARAMS = "action_get_common_params" //获取http公用参数 fun rigister(activity: FlutterActivity) { MethodChannel(activity.flutterView, CHANNEL).setMethodCallHandler(ArticlePlugin(activity)) } } private var mActivity: FlutterActivity? = null private constructor(activity: FlutterActivity) { mActivity = activity } override fun onMethodCall(methodCall: MethodCall, result: MethodChannel.Result) { methodCall.let { when (methodCall.method) { // flutter获取原生的功能 ACTION_TO_H5 -> { var url: String? = methodCall.argument<String>("url") YDLRouterManager.router("ydl-user://h5/h5?params={'url':'${url}'}") // NewH5Activity.start(mActivity, H5Params(url?:"",null)) } ACTION_GET_COMMON_PARAMS -> { val map = AppUtils.getHttpCommonParams() result?.success(map) } else -> { } } } } /** * 分享,跟FM一致 */ private fun share(methodCall: MethodCall?) { var shareUrl = methodCall?.argument<String>("shareUrl") ?: "" var title = methodCall?.argument<String>("title") ?: "" var path = methodCall?.argument<String>("path") ?: "" var appId = methodCall?.argument<String>("appId") ?: "" if (shareUrl.isEmpty()) { ToastUtil.toastShort("分享数据获取失败") } else { val dialog = YDLShareDialog.style7(mActivity!!, title, shareUrl, null, "https://img.yidianling.com/file/2019/06/10/fm0vovijx0p2br9s.png", path, appId) dialog.setCallBack(object : YDLShareDialog.ICallBack { override fun callBack(type: Int) { } }) dialog.show(mActivity!!.fragmentManager, "lose") } } }