package com.ydl.js;


import com.ydl.webview.H5JsBean;

/**
 * webview 点击事件监听
 * Created by harvie on 2017/7/4 0004.
 */

public interface NewH5_WebViewClientClickListener {

    void openH5(H5JsBean.H5JsCmd.Params jsData);

    void courseList();

    void activeDetail(String id);

    void contactYi();

    void contactCourseCustomerService();

    void openTopicDetail(String topic_id);

    void openMember(String id);

    void sendTrend();

    void sendResultTrend(final String cover1, final String title1, final String purl1, String share_url1);

    void sendInfo(H5JsBean.H5JsCmd.Params params);

    void searchList(H5JsBean.H5JsCmd.Params params);

    void openExpertsHome(H5JsBean.H5JsCmd.Params params);

    void openTest(H5JsBean.H5JsCmd.Params params);

    //注册引导页--跳转私聊界面
    void chat(int id, int toUid, int canTalk, String accessToken, int isFromQingShu,boolean closeReplaceChat);

    void chatSendMessage(int id, int toUid, int canTalk, String accessToken, int isFromQingShu);

    void chatTeam(int tid, int doctorId);

    void jumpLogin(H5JsBean.H5JsCmd.Params jsData);

    void openFmDetail(int id);

    void openArticle();

    void openFmList();

    void sendSubscriptionTimeMessage(String to_uid);

    void pay(H5JsBean.H5JsCmd.Params jsData);

    void payReceipt(H5JsBean.H5JsCmd.Params jsData);

    void payCourse(H5JsBean.H5JsCmd.Params jsData);

    void payTest(H5JsBean.H5JsCmd.Params jsData);

    void viewTestResult(H5JsBean.H5JsCmd.Params jsData);

    void ydlNative(H5JsBean.H5JsCmd jsData);//用于神策统计

    void openOrderDetail(H5JsBean.H5JsCmd.Params params);

    void expertProduct(H5JsBean.H5JsCmd.Params params);

    void order(H5JsBean.H5JsCmd.Params params);

    void toOrderCt(H5JsBean.H5JsCmd.Params params);


    void showDocList(H5JsBean.H5JsCmd.Params params);

    void goodExpert();

    void copyWechat(H5JsBean.H5JsCmd.Params params);

    void goWechat();

    void listenOrderDetail(H5JsBean.H5JsCmd.Params params);

    void detailSub(H5JsBean.H5JsCmd.Params params);

    void openAgreement(H5JsBean.H5JsCmd.Params params);

    void modifyEval(H5JsBean.H5JsCmd.Params params);

    void visitEval(H5JsBean.H5JsCmd.Params params);

    void coursePlay(H5JsBean.H5JsCmd.Params params);

    void closeFloatView();

    void courseWriteComment(H5JsBean.H5JsCmd.Params params);

    void courseComment(H5JsBean.H5JsCmd.Params params);

    void listenTel(H5JsBean.H5JsCmd.Params jsData);

    void voiceBroadcast(H5JsBean.H5JsCmd.Params params);

    void tel(H5JsBean.H5JsCmd.Params params);

    void onOrderByApp(H5JsBean.H5JsCmd.Params params);

    void orderSetTime(H5JsBean.H5JsCmd.Params params);

    void searchServiceDoc(int cateId);

    void openTestDetail(H5JsBean.H5JsCmd.Params params);

    void shareAction(H5JsBean.H5JsCmd.Params params);

    void openTestList();

    void feedBack();

    void phoneCall();

    void chatSchedule(H5JsBean.H5JsCmd.Params params);

    void invite(H5JsBean.H5JsCmd.Params params);

    void balance(H5JsBean.H5JsCmd.Params params);

    //是否显示下拉刷新控件
    void switchDownRefresh(H5JsBean.H5JsCmd.Params params);

    //跳转充值界面
    void recharge();

    void bindPhone();

    //界面刷新
    void refresh();

    //声网拨号逻辑
    void listenAgora(H5JsBean.H5JsCmd.Params jsData);

    void setTitle(H5JsBean.H5JsCmd.Params jsData);

    void saveImage(H5JsBean.H5JsCmd.Params jsData);

    void sendToExpert(H5JsBean.H5JsCmd.Params jsData);

    void confideConnect(H5JsBean.H5JsCmd.Params jsData);

    void confidePay(H5JsBean.H5JsCmd.Params jsData);

    void back();

    //调用公共支付的
    void commonPay(H5JsBean.H5JsCmd.Params jsData);

    //隐藏statusbar，全屏展示
    void hideStatusBar();

    void showStatusBar();

    //打开与关闭右上角菜单
    void openRightTopMenu();

    //打开与关闭底部分享弹框
    void openShareMenu(H5JsBean.H5JsCmd.Params params);

    //关闭页面
    void closeWebKit();


    void goHome(H5JsBean.H5JsCmd.Params params);

    /**
     * 向h5发送对那个uid的未读数
     * @param callbackFuncName
     * @param uid
     */
    void sendUnReadNum(String callbackFuncName, String uid);

    //h5页面是否需要打开推送
    void switchPushStatus(H5JsBean.H5JsCmd.Params params);

    //是否展示标题栏
    void shouldShowTitleBar(boolean isShowTitleBar);

    //设置当前页面类型
    void setSelfPageType(int selfType);

    void setBootomFitViewColor(String color);

    /**打开时间选择器*/
    void openTimePicker(String jsCallBackName, String day, String doctorId, String orderId);

    /**返回上一页并刷新*/
    void goBackAndReload(String url);

    /**跳转第三方APP*/
    void toThirdApp(String url);

    /**页面内跳转url*/
    void reloadUrl(String url);


    default void playMeditation(int mediaId, long meditationId, int meditationType, String mediaCoverUrl) {
    }

    default void switchSound(int mediaId, long meditationId, int meditationType, int businessType,
                             String buried, String mediaUrl, String mediaCoverUrl, String title,
                             String desc, int status) {

    }

    default void setBG(String rgb, String alpha) {
    }


    void getNextExpertStatus(String doctorID, String title, String uid, String linkUrl);

    /**
     * 关闭私聊窗口立即咨询webview
     */
    void chatCloseBottomWebView();

    void showCommentArticleDialog(H5JsBean.H5JsCmd.Params params);

    void resourceToPreview(H5JsBean.H5JsCmd.Params params);

    void showDocBooking(H5JsBean.H5JsCmd.Params params);
}
