Js调用原生整改
This commit is contained in:
@@ -1228,7 +1228,7 @@ public abstract class LiveActivity extends AbsActivity implements SocketMessageL
|
||||
*/
|
||||
public void openFansWindow() {
|
||||
|
||||
LiveFansFragment fragment = new LiveFansFragment();
|
||||
LiveFansFragment fragment = new LiveFansFragment(mContext);
|
||||
Bundle bundle = new Bundle();
|
||||
|
||||
//粉絲團粉絲團
|
||||
|
||||
@@ -751,6 +751,7 @@ public class LiveAudienceActivity extends LiveActivity {
|
||||
.setType(LiveAudienceEvent.LiveAudienceType.FAN_CLUB));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void showerHtml(String htmlUrl, boolean screen) {
|
||||
if (!screen) {
|
||||
@@ -895,7 +896,7 @@ public class LiveAudienceActivity extends LiveActivity {
|
||||
break;
|
||||
case FAN_CLUB:
|
||||
|
||||
LiveFansFragment liveFansFragment = new LiveFansFragment();
|
||||
LiveFansFragment liveFansFragment = new LiveFansFragment(mContext);
|
||||
//粉絲團粉絲團
|
||||
//不是粉絲
|
||||
if (LiveAudienceActivity.is_fans != null && LiveAudienceActivity.is_fans.equals("2")) {
|
||||
|
||||
@@ -8,11 +8,9 @@ import android.net.Uri;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.provider.MediaStore;
|
||||
import androidx.annotation.RequiresApi;
|
||||
import android.text.TextUtils;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.webkit.JavascriptInterface;
|
||||
import android.webkit.ValueCallback;
|
||||
import android.webkit.WebChromeClient;
|
||||
import android.webkit.WebSettings;
|
||||
@@ -22,23 +20,30 @@ import android.widget.ImageView;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.ProgressBar;
|
||||
|
||||
import androidx.annotation.RequiresApi;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.yunbao.common.CommonAppConfig;
|
||||
import com.yunbao.common.Constants;
|
||||
import com.yunbao.common.HtmlConfig;
|
||||
import com.yunbao.common.R;
|
||||
import com.yunbao.common.activity.AbsActivity;
|
||||
import com.yunbao.common.bean.LiveBean;
|
||||
import com.yunbao.common.event.JavascriptInterfaceEvent;
|
||||
import com.yunbao.common.http.HttpCallback;
|
||||
import com.yunbao.common.utils.DpUtil;
|
||||
import com.yunbao.common.utils.JavascriptInterfaceUtils;
|
||||
import com.yunbao.common.utils.L;
|
||||
import com.yunbao.common.utils.RouteUtil;
|
||||
import com.yunbao.common.utils.ToastUtil;
|
||||
import com.yunbao.common.utils.WordUtil;
|
||||
import com.yunbao.common.bean.LiveBean;
|
||||
import com.yunbao.live.dialog.LiveUserDialogFragment;
|
||||
import com.yunbao.live.http.LiveHttpUtil;
|
||||
import com.yunbao.live.presenter.LiveRoomCheckLivePresenter;
|
||||
|
||||
import org.greenrobot.eventbus.Subscribe;
|
||||
import org.greenrobot.eventbus.ThreadMode;
|
||||
|
||||
/**
|
||||
* Created by cxf on 2018/9/25.
|
||||
* 我的徽章 h5页面
|
||||
@@ -133,7 +138,7 @@ public class WebViewActivityMedal extends AbsActivity {
|
||||
}
|
||||
|
||||
});
|
||||
mWebView.addJavascriptInterface(new JsInteration(), "androidObject");
|
||||
mWebView.addJavascriptInterface(new JavascriptInterfaceUtils(mContext, mWebView), "androidObject");
|
||||
mWebView.getSettings().setJavaScriptEnabled(true);
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
|
||||
mWebView.getSettings().setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
|
||||
@@ -150,23 +155,6 @@ public class WebViewActivityMedal extends AbsActivity {
|
||||
});
|
||||
}
|
||||
|
||||
//js调用原生
|
||||
public class JsInteration {
|
||||
@JavascriptInterface
|
||||
public String androidMethodLookLive(String uId, String liveId, String isLiving) {
|
||||
//跳转个人主页
|
||||
RouteUtil.forwardUserHome(mContext, liveId, 0);
|
||||
|
||||
return "";
|
||||
}
|
||||
|
||||
@JavascriptInterface
|
||||
public void androidMethodLookToLive(String liveId) {
|
||||
//看直播
|
||||
gotoLive(liveId);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
private LiveRoomCheckLivePresenter mCheckLivePresenter;
|
||||
|
||||
@@ -192,7 +180,7 @@ public class WebViewActivityMedal extends AbsActivity {
|
||||
}
|
||||
mCheckLivePresenter.checkLive(liveBean);
|
||||
} else {
|
||||
RouteUtil.forwardUserHome(mContext, live_id,0);
|
||||
RouteUtil.forwardUserHome(mContext, live_id, 0);
|
||||
}
|
||||
}
|
||||
});
|
||||
@@ -332,4 +320,13 @@ public class WebViewActivityMedal extends AbsActivity {
|
||||
ToastUtil.show(getString(R.string.copy_success));
|
||||
}
|
||||
|
||||
}
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
public void onJavascriptInterfaceEvent(JavascriptInterfaceEvent event) {
|
||||
if (!TextUtils.isEmpty(event.getMethod())) {
|
||||
if (TextUtils.equals(event.getMethod(), "androidMethodLookToLive")) {
|
||||
//看直播
|
||||
gotoLive(event.getLiveId());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2,7 +2,6 @@ package com.yunbao.live.activity;
|
||||
|
||||
import static com.yunbao.common.CommonAppContext.logger;
|
||||
import static com.yunbao.common.CommonAppContext.mFirebaseAnalytics;
|
||||
import static com.yunbao.common.utils.RouteUtil.PATH_COIN;
|
||||
|
||||
import android.content.ClipData;
|
||||
import android.content.ClipboardManager;
|
||||
@@ -15,7 +14,6 @@ import android.text.TextUtils;
|
||||
import android.util.Log;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.webkit.JavascriptInterface;
|
||||
import android.webkit.ValueCallback;
|
||||
import android.webkit.WebChromeClient;
|
||||
import android.webkit.WebSettings;
|
||||
@@ -31,7 +29,7 @@ import androidx.annotation.RequiresApi;
|
||||
|
||||
import com.adjust.sdk.Adjust;
|
||||
import com.adjust.sdk.AdjustEvent;
|
||||
import com.alibaba.android.arouter.launcher.ARouter;
|
||||
import com.alibaba.android.arouter.facade.annotation.Route;
|
||||
import com.opensource.svgaplayer.SVGACallback;
|
||||
import com.opensource.svgaplayer.SVGADrawable;
|
||||
import com.opensource.svgaplayer.SVGAImageView;
|
||||
@@ -40,18 +38,24 @@ import com.opensource.svgaplayer.SVGAVideoEntity;
|
||||
import com.yunbao.common.CommonAppConfig;
|
||||
import com.yunbao.common.Constants;
|
||||
import com.yunbao.common.activity.AbsActivity;
|
||||
import com.yunbao.common.bean.IMLoginModel;
|
||||
import com.yunbao.common.manager.IMLoginManager;
|
||||
import com.yunbao.common.event.JavascriptInterfaceEvent;
|
||||
import com.yunbao.common.utils.Bus;
|
||||
import com.yunbao.common.utils.DpUtil;
|
||||
import com.yunbao.common.utils.JavascriptInterfaceUtils;
|
||||
import com.yunbao.common.utils.L;
|
||||
import com.yunbao.common.utils.RouteUtil;
|
||||
import com.yunbao.common.utils.SVGAViewUtils;
|
||||
import com.yunbao.common.utils.ToastUtil;
|
||||
import com.yunbao.common.utils.WordUtil;
|
||||
import com.yunbao.live.R;
|
||||
|
||||
import org.greenrobot.eventbus.Subscribe;
|
||||
import org.greenrobot.eventbus.ThreadMode;
|
||||
|
||||
import java.net.MalformedURLException;
|
||||
import java.net.URL;
|
||||
|
||||
@Route(path = RouteUtil.PATH_LiveZHUANGBANACTIVITY)
|
||||
public class ZhuangBanActivity extends AbsActivity {
|
||||
|
||||
private ProgressBar mProgressBar;
|
||||
@@ -72,6 +76,7 @@ public class ZhuangBanActivity extends AbsActivity {
|
||||
|
||||
@Override
|
||||
protected void main() {
|
||||
Bus.getOn(this);
|
||||
String url = getIntent().getStringExtra(Constants.URL);
|
||||
String titleString = getIntent().getStringExtra("title");
|
||||
L.e("H5---2s>" + url);
|
||||
@@ -172,7 +177,9 @@ public class ZhuangBanActivity extends AbsActivity {
|
||||
}
|
||||
|
||||
});
|
||||
mWebView.addJavascriptInterface(new JsInteration(), "androidObject");
|
||||
mWebView.addJavascriptInterface(new JavascriptInterfaceUtils(mContext, mWebView)
|
||||
.setPageClose(true)
|
||||
.setLiveZhuangBana(true), "androidObject");
|
||||
mWebView.getSettings().setJavaScriptEnabled(true);
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
|
||||
mWebView.getSettings().setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
|
||||
@@ -180,141 +187,6 @@ public class ZhuangBanActivity extends AbsActivity {
|
||||
mWebView.loadUrl(url);
|
||||
}
|
||||
|
||||
//js调用原生
|
||||
public class JsInteration {
|
||||
@JavascriptInterface
|
||||
public void androidOpeningNoble(String svg) {
|
||||
Log.e("Zhu", "svg" + svg);
|
||||
try {
|
||||
new SVGAParser(mContext).parse(new URL(svg), new SVGAParser.ParseCompletion() {
|
||||
@Override
|
||||
public void onComplete(SVGAVideoEntity videoItem) {
|
||||
svga.setVisibility(View.VISIBLE);
|
||||
SVGADrawable drawable = new SVGADrawable(videoItem);
|
||||
svga.setImageDrawable(drawable);
|
||||
svga.setLoops(1);
|
||||
SVGAViewUtils.playEndClear(svga);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError() {
|
||||
}
|
||||
});
|
||||
svga.setCallback(new SVGACallback() {
|
||||
@Override
|
||||
public void onPause() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFinished() {
|
||||
svga.clear();
|
||||
svga.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRepeat() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onStep(int i, double v) {
|
||||
|
||||
}
|
||||
});
|
||||
} catch (MalformedURLException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
@JavascriptInterface
|
||||
public void androidGoBack() {
|
||||
ZhuangBanActivity.this.finish();
|
||||
}
|
||||
|
||||
@JavascriptInterface
|
||||
public void AndroidAdjustConsume() {
|
||||
mFirebaseAnalytics.logEvent("FS_event_interaction", null);
|
||||
logger.logEvent("FB_event_interaction", null);
|
||||
AdjustEvent adjustEvent1 = new AdjustEvent("rq2c5n");
|
||||
Adjust.trackEvent(adjustEvent1);
|
||||
}
|
||||
|
||||
@JavascriptInterface
|
||||
public void androidGoToRe() {
|
||||
ARouter.getInstance().build(PATH_COIN).withInt("p", 1).navigation();
|
||||
}
|
||||
|
||||
@JavascriptInterface
|
||||
public void onBack() {
|
||||
finish();
|
||||
}
|
||||
|
||||
@JavascriptInterface
|
||||
public void androidClickToNewH5PageView(String url) {
|
||||
url = CommonAppConfig.HOST + url;
|
||||
url += "?uid=" + CommonAppConfig.getInstance().getUid() + "&token="
|
||||
+ CommonAppConfig.getInstance().getToken();
|
||||
Log.i("tag", url);
|
||||
Intent intent = new Intent(mContext, ZhuangBanActivity.class);
|
||||
intent.putExtra("url", url);
|
||||
intent.putExtra("isFull", false);
|
||||
mContext.startActivity(intent);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 新跳转
|
||||
*
|
||||
* @param url 跳转的url
|
||||
* @param title 有标题的展示标题
|
||||
*/
|
||||
@JavascriptInterface
|
||||
public void androidClickToNewH5PageView(String url, String title) {
|
||||
url = CommonAppConfig.HOST + url;
|
||||
url += "?uid=" + CommonAppConfig.getInstance().getUid() + "&token="
|
||||
+ CommonAppConfig.getInstance().getToken();
|
||||
Log.i("tag", url);
|
||||
Intent intent = new Intent(mContext, ZhuangBanActivity.class);
|
||||
intent.putExtra("url", url);
|
||||
intent.putExtra("title", title);
|
||||
mContext.startActivity(intent);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置超皇字体颜色
|
||||
*
|
||||
* @param startColor 渐变色
|
||||
* @param endColor 渐变色
|
||||
* @param contentColor 内容颜色
|
||||
*/
|
||||
@JavascriptInterface
|
||||
public void androidSetColor(String startColor, String endColor, String contentColor) {
|
||||
IMLoginModel model = IMLoginManager.get(mContext).getUserInfo();
|
||||
model.setStartColor("#"+startColor)
|
||||
.setEndColor("#"+endColor)
|
||||
.setContentColor("#"+contentColor);
|
||||
IMLoginManager.get(mContext).upDataUserInfo(model);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// //js调用原生
|
||||
// public class JsInteration {
|
||||
// @JavascriptInterface
|
||||
// public String androidMethodLookLive(String liveId,String isLiving) {
|
||||
// //进入直播间
|
||||
// if (!TextUtils.isEmpty(isLiving) ) {
|
||||
// if (isLiving.equals("1")){
|
||||
// //跳转直播间
|
||||
// }else {
|
||||
// //打开主播个人主页
|
||||
// }
|
||||
// }
|
||||
// return "";
|
||||
// }
|
||||
// }
|
||||
|
||||
private void openImageChooserActivity(ValueCallback<Uri> valueCallback) {
|
||||
mValueCallback = valueCallback;
|
||||
@@ -418,6 +290,7 @@ public class ZhuangBanActivity extends AbsActivity {
|
||||
|
||||
@Override
|
||||
protected void onDestroy() {
|
||||
Bus.getOff(this);
|
||||
if (mWebView != null) {
|
||||
ViewGroup parent = (ViewGroup) mWebView.getParent();
|
||||
if (parent != null) {
|
||||
@@ -438,4 +311,54 @@ public class ZhuangBanActivity extends AbsActivity {
|
||||
ToastUtil.show(getString(R.string.copy_success));
|
||||
}
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
public void onJavascriptInterfaceEvent(JavascriptInterfaceEvent event) {
|
||||
if (!TextUtils.isEmpty(event.getMethod())) {
|
||||
if (TextUtils.equals(event.getMethod(), "androidOpeningNoble")) {
|
||||
try {
|
||||
new SVGAParser(mContext).parse(new URL(event.getSvg()), new SVGAParser.ParseCompletion() {
|
||||
@Override
|
||||
public void onComplete(SVGAVideoEntity videoItem) {
|
||||
svga.setVisibility(View.VISIBLE);
|
||||
SVGADrawable drawable = new SVGADrawable(videoItem);
|
||||
svga.setImageDrawable(drawable);
|
||||
svga.setLoops(1);
|
||||
SVGAViewUtils.playEndClear(svga);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError() {
|
||||
}
|
||||
});
|
||||
svga.setCallback(new SVGACallback() {
|
||||
@Override
|
||||
public void onPause() {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFinished() {
|
||||
svga.clear();
|
||||
svga.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRepeat() {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onStep(int i, double v) {
|
||||
}
|
||||
});
|
||||
} catch (MalformedURLException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
} else if (TextUtils.equals(event.getMethod(), "AndroidAdjustConsume")) {
|
||||
mFirebaseAnalytics.logEvent("FS_event_interaction", null);
|
||||
logger.logEvent("FB_event_interaction", null);
|
||||
AdjustEvent adjustEvent1 = new AdjustEvent("rq2c5n");
|
||||
Adjust.trackEvent(adjustEvent1);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,31 +0,0 @@
|
||||
package com.yunbao.live.bean;
|
||||
|
||||
public class ReportCommunityBean {
|
||||
String dynamic_id;
|
||||
String community_type;
|
||||
String comment_id;
|
||||
|
||||
public String getDynamic_id() {
|
||||
return dynamic_id;
|
||||
}
|
||||
|
||||
public void setDynamic_id(String dynamic_id) {
|
||||
this.dynamic_id = dynamic_id;
|
||||
}
|
||||
|
||||
public String getCommunity_type() {
|
||||
return community_type;
|
||||
}
|
||||
|
||||
public void setCommunity_type(String community_type) {
|
||||
this.community_type = community_type;
|
||||
}
|
||||
|
||||
public String getComment_id() {
|
||||
return comment_id;
|
||||
}
|
||||
|
||||
public void setComment_id(String comment_id) {
|
||||
this.comment_id = comment_id;
|
||||
}
|
||||
}
|
||||
@@ -1,30 +1,43 @@
|
||||
package com.yunbao.live.dialog;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.text.TextUtils;
|
||||
import android.util.Log;
|
||||
import android.view.Gravity;
|
||||
import android.view.View;
|
||||
import android.view.Window;
|
||||
import android.view.WindowManager;
|
||||
import android.webkit.JavascriptInterface;
|
||||
import android.webkit.WebSettings;
|
||||
import android.webkit.WebView;
|
||||
import android.webkit.WebViewClient;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import com.yunbao.common.Constants;
|
||||
import com.yunbao.common.dialog.AbsDialogFragment;
|
||||
import com.yunbao.common.event.JavascriptInterfaceEvent;
|
||||
import com.yunbao.common.utils.Bus;
|
||||
import com.yunbao.common.utils.DpUtil;
|
||||
import com.yunbao.common.utils.JavascriptInterfaceUtils;
|
||||
import com.yunbao.common.utils.L;
|
||||
import com.yunbao.common.utils.ToastUtil;
|
||||
import com.yunbao.live.R;
|
||||
import com.yunbao.live.activity.LiveActivity;
|
||||
import com.yunbao.live.activity.LiveAudienceActivity;
|
||||
import com.yunbao.live.views.LiveRoomViewHolder;
|
||||
|
||||
import org.greenrobot.eventbus.Subscribe;
|
||||
import org.greenrobot.eventbus.ThreadMode;
|
||||
|
||||
public class LiveFansFragment extends AbsDialogFragment {
|
||||
|
||||
private WebView mWebView;
|
||||
private Activity mContext;
|
||||
|
||||
public LiveFansFragment(Activity mContext) {
|
||||
this.mContext = mContext;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected int getLayoutId() {
|
||||
@@ -51,6 +64,18 @@ public class LiveFansFragment extends AbsDialogFragment {
|
||||
window.setAttributes(params);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCreate(@Nullable Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
Bus.getOn(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDetach() {
|
||||
super.onDetach();
|
||||
Bus.getOff(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onActivityCreated(Bundle savedInstanceState) {
|
||||
super.onActivityCreated(savedInstanceState);
|
||||
@@ -59,7 +84,7 @@ public class LiveFansFragment extends AbsDialogFragment {
|
||||
@Override
|
||||
public boolean shouldOverrideUrlLoading(WebView view, String url) {
|
||||
L.e("H5-------->" + url);
|
||||
view.loadUrl(url);
|
||||
view.loadUrl(url);
|
||||
return false;
|
||||
|
||||
}
|
||||
@@ -70,8 +95,7 @@ public class LiveFansFragment extends AbsDialogFragment {
|
||||
});
|
||||
|
||||
mWebView.getSettings().setJavaScriptEnabled(true); // 是否开启JS支持
|
||||
// mWebView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true); // 是否允许JS打开新窗口
|
||||
mWebView.addJavascriptInterface(new JsInteration(),"androidObject");
|
||||
mWebView.addJavascriptInterface(new JavascriptInterfaceUtils(mContext, mWebView).setPageClose(false), "androidObject");
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
|
||||
mWebView.getSettings().setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
|
||||
}
|
||||
@@ -79,56 +103,35 @@ public class LiveFansFragment extends AbsDialogFragment {
|
||||
if (bundle == null) {
|
||||
return;
|
||||
}
|
||||
Log.e("tag",bundle.getString(Constants.URL));
|
||||
Log.e("tag", bundle.getString(Constants.URL));
|
||||
mWebView.loadUrl(bundle.getString(Constants.URL));
|
||||
}
|
||||
|
||||
//js调用原生
|
||||
public class JsInteration {
|
||||
@JavascriptInterface
|
||||
public void androidGoBack() {
|
||||
((LiveActivity) mContext).runOnUiThread(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
mWebView.goBack();
|
||||
}
|
||||
});
|
||||
mWebView.goBack();
|
||||
}
|
||||
@JavascriptInterface
|
||||
public void AndroidClose() {
|
||||
((LiveActivity) mContext).runOnUiThread(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
LiveAudienceActivity.is_fans = "2";
|
||||
int num = LiveAudienceActivity.fansNum-1;
|
||||
LiveRoomViewHolder.setFansNum(num);
|
||||
ToastUtil.show("退出成功");
|
||||
dismiss();
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
@JavascriptInterface
|
||||
public void sendFansCard(String id) {
|
||||
((LiveActivity) mContext).runOnUiThread(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
if(LiveRoomViewHolder.mBtnFollow.getVisibility() == View.VISIBLE) {
|
||||
LiveRoomViewHolder.follow();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
//点击 开通粉丝勋章,打开礼物列表送礼物
|
||||
((LiveAudienceActivity) mContext).openGiftWindow(id,"0");
|
||||
dismiss();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDestroy() {
|
||||
super.onDestroy();
|
||||
mContext = null;
|
||||
}
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
public void onJavascriptInterfaceEvent(JavascriptInterfaceEvent event) {
|
||||
if (!TextUtils.isEmpty(event.getMethod())) {
|
||||
if (TextUtils.equals(event.getMethod(), "AndroidClose")) {
|
||||
LiveAudienceActivity.is_fans = "2";
|
||||
int num = LiveAudienceActivity.fansNum - 1;
|
||||
LiveRoomViewHolder.setFansNum(num);
|
||||
ToastUtil.show("退出成功");
|
||||
dismiss();
|
||||
} else if (TextUtils.equals(event.getMethod(), "sendFansCard")) {
|
||||
if (LiveRoomViewHolder.mBtnFollow.getVisibility() == View.VISIBLE) {
|
||||
LiveRoomViewHolder.follow();
|
||||
}
|
||||
//点击 开通粉丝勋章,打开礼物列表送礼物
|
||||
((LiveAudienceActivity) mContext).openGiftWindow(event.getLiveId(), "0");
|
||||
dismiss();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,26 +1,37 @@
|
||||
package com.yunbao.live.dialog;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.text.TextUtils;
|
||||
import android.view.Gravity;
|
||||
import android.view.Window;
|
||||
import android.view.WindowManager;
|
||||
import android.webkit.JavascriptInterface;
|
||||
import android.webkit.WebSettings;
|
||||
import android.webkit.WebView;
|
||||
import android.webkit.WebViewClient;
|
||||
|
||||
import com.alibaba.android.arouter.launcher.ARouter;
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import com.yunbao.common.dialog.AbsDialogFragment;
|
||||
import com.yunbao.common.event.JavascriptInterfaceEvent;
|
||||
import com.yunbao.common.utils.Bus;
|
||||
import com.yunbao.common.utils.DpUtil;
|
||||
import com.yunbao.common.utils.JavascriptInterfaceUtils;
|
||||
import com.yunbao.common.utils.L;
|
||||
import com.yunbao.live.R;
|
||||
|
||||
import static com.yunbao.common.utils.RouteUtil.PATH_COIN;
|
||||
import org.greenrobot.eventbus.Subscribe;
|
||||
import org.greenrobot.eventbus.ThreadMode;
|
||||
|
||||
public class LiveOneDialogFragment extends AbsDialogFragment {
|
||||
|
||||
private WebView mWebView;
|
||||
private Activity mContext;
|
||||
|
||||
public LiveOneDialogFragment(Activity mContext) {
|
||||
this.mContext = mContext;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected int getLayoutId() {
|
||||
@@ -48,12 +59,24 @@ public class LiveOneDialogFragment extends AbsDialogFragment {
|
||||
window.setAttributes(params);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCreate(@Nullable Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
Bus.getOn(this);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDetach() {
|
||||
super.onDetach();
|
||||
Bus.getOff(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onActivityCreated(Bundle savedInstanceState) {
|
||||
super.onActivityCreated(savedInstanceState);
|
||||
mWebView = (WebView)findViewById(R.id.rlWebview);
|
||||
mWebView.addJavascriptInterface(new JsInteration(),"androidObject");
|
||||
mWebView = (WebView) findViewById(R.id.rlWebview);
|
||||
mWebView.addJavascriptInterface(new JavascriptInterfaceUtils(mContext, mWebView), "androidObject");
|
||||
mWebView.getSettings().setJavaScriptEnabled(true);
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
|
||||
mWebView.getSettings().setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
|
||||
@@ -71,7 +94,7 @@ public class LiveOneDialogFragment extends AbsDialogFragment {
|
||||
@Override
|
||||
public boolean shouldOverrideUrlLoading(WebView view, String url) {
|
||||
L.e("H5-------->" + url);
|
||||
view.loadUrl(url);
|
||||
view.loadUrl(url);
|
||||
|
||||
return true;
|
||||
}
|
||||
@@ -83,19 +106,13 @@ public class LiveOneDialogFragment extends AbsDialogFragment {
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
//js调用原生
|
||||
public class JsInteration {
|
||||
@JavascriptInterface
|
||||
public void androidGoTopUp() {
|
||||
|
||||
//我们的
|
||||
ARouter.getInstance().build(PATH_COIN).withInt("p",0).withString("tag","&first_page=1").navigation();
|
||||
|
||||
dismiss();
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
public void onJavascriptInterfaceEvent(JavascriptInterfaceEvent event) {
|
||||
if (!TextUtils.isEmpty(event.getMethod())) {
|
||||
if (TextUtils.equals(event.getMethod(), "androidCommunityGift")) {
|
||||
dismiss();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,8 +11,6 @@ import com.yunbao.common.CommonAppContext;
|
||||
import com.yunbao.common.Constants;
|
||||
import com.yunbao.common.HtmlConfig;
|
||||
import com.yunbao.common.bean.JsTurnTableBean;
|
||||
import com.yunbao.common.bean.JsTurnTableBean2;
|
||||
import com.yunbao.common.bean.JsWishBean;
|
||||
import com.yunbao.common.dialog.AbsDialogFragment;
|
||||
import com.yunbao.live.R;
|
||||
import com.yunbao.live.views.TurnTableWebViewHolder;
|
||||
@@ -29,10 +27,10 @@ import cn.qqtheme.framework.util.ScreenUtils;
|
||||
* 观众查看 转盘弹窗
|
||||
*/
|
||||
|
||||
public class LiveTurnTableDialogFragment4Audience extends AbsDialogFragment {
|
||||
public class LiveTurnTableDialogFragment4Audience extends AbsDialogFragment {
|
||||
|
||||
protected TurnTableWebViewHolder mTurnTableViewHolder;
|
||||
private String mLiveUid="";
|
||||
private String mLiveUid = "";
|
||||
|
||||
@Override
|
||||
protected int getLayoutId() {
|
||||
@@ -56,14 +54,13 @@ public class LiveTurnTableDialogFragment4Audience extends AbsDialogFragment {
|
||||
WindowManager.LayoutParams params = window.getAttributes();
|
||||
params.width = WindowManager.LayoutParams.MATCH_PARENT;
|
||||
// params.height = DpUtil.dp2px(400);
|
||||
params.height =(int)(ScreenUtils.heightPixels(CommonAppContext.sInstance)*0.8);
|
||||
params.height = (int) (ScreenUtils.heightPixels(CommonAppContext.sInstance) * 0.8);
|
||||
|
||||
params.gravity = Gravity.BOTTOM;
|
||||
window.setAttributes(params);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public void onActivityCreated(Bundle savedInstanceState) {
|
||||
super.onActivityCreated(savedInstanceState);
|
||||
@@ -72,12 +69,12 @@ public class LiveTurnTableDialogFragment4Audience extends AbsDialogFragment {
|
||||
mLiveUid = bundle.getString(Constants.LIVE_UID);
|
||||
}
|
||||
EventBus.getDefault().register(this);
|
||||
RelativeLayout rlWebview= (RelativeLayout) findViewById(R.id.rlWebview);
|
||||
RelativeLayout rlWebview = (RelativeLayout) findViewById(R.id.rlWebview);
|
||||
if (mTurnTableViewHolder == null) {
|
||||
String url=HtmlConfig.TURNTABLE_URL;
|
||||
String url = HtmlConfig.TURNTABLE_URL;
|
||||
url += "&uid=" + CommonAppConfig.getInstance().getUid() + "&token="
|
||||
+ CommonAppConfig.getInstance().getToken() + "&liveUid="+mLiveUid;
|
||||
mTurnTableViewHolder = new TurnTableWebViewHolder(mContext, rlWebview, url);
|
||||
+ CommonAppConfig.getInstance().getToken() + "&liveUid=" + mLiveUid;
|
||||
mTurnTableViewHolder = new TurnTableWebViewHolder(getActivity(), rlWebview, url);
|
||||
mTurnTableViewHolder.subscribeActivityLifeCycle();
|
||||
mTurnTableViewHolder.addToParent();
|
||||
}
|
||||
@@ -88,14 +85,12 @@ public class LiveTurnTableDialogFragment4Audience extends AbsDialogFragment {
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
public void onGotoOnlineShop(JsTurnTableBean bean) {
|
||||
if (bean!=null){
|
||||
if (bean != null) {
|
||||
dismiss();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public void onDestroy() {
|
||||
super.onDestroy();
|
||||
|
||||
@@ -2,6 +2,7 @@ package com.yunbao.live.presenter;
|
||||
|
||||
import android.Manifest;
|
||||
import android.annotation.SuppressLint;
|
||||
import android.app.Activity;
|
||||
import android.app.Dialog;
|
||||
import android.content.Context;
|
||||
import android.graphics.drawable.ColorDrawable;
|
||||
@@ -252,7 +253,7 @@ public class LiveLinkMicPresenter implements View.OnClickListener {
|
||||
String url = CommonAppConfig.HOST + "/h5/activity/firstTopUp/index.html?&uid=" + CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken();
|
||||
Bundle bundle = new Bundle();
|
||||
bundle.putString("url", url);
|
||||
LiveOneDialogFragment fragment = new LiveOneDialogFragment();
|
||||
LiveOneDialogFragment fragment = new LiveOneDialogFragment((Activity) mContext);
|
||||
fragment.setArguments(bundle);
|
||||
fragment.show(((LiveAudienceActivity) mContext).getSupportFragmentManager(), "LiveOneDialogFragment");
|
||||
}
|
||||
|
||||
@@ -1,13 +1,11 @@
|
||||
package com.yunbao.live.views;
|
||||
|
||||
import android.content.Context;
|
||||
import android.app.Activity;
|
||||
import android.graphics.Color;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.text.TextUtils;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.webkit.JavascriptInterface;
|
||||
import android.webkit.WebChromeClient;
|
||||
import android.webkit.WebSettings;
|
||||
import android.webkit.WebView;
|
||||
@@ -15,22 +13,18 @@ import android.webkit.WebViewClient;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.ProgressBar;
|
||||
|
||||
import com.yunbao.common.CommonAppConfig;
|
||||
import com.yunbao.common.Constants;
|
||||
import com.yunbao.common.HtmlConfig;
|
||||
import com.yunbao.common.activity.WebViewActivity;
|
||||
import com.yunbao.common.bean.JsTurnTableBean;
|
||||
import com.yunbao.common.bean.JsTurnTableBean2;
|
||||
import com.yunbao.common.bean.JsWishBean;
|
||||
import com.yunbao.common.event.JavascriptInterfaceEvent;
|
||||
import com.yunbao.common.utils.Bus;
|
||||
import com.yunbao.common.utils.JavascriptInterfaceUtils;
|
||||
import com.yunbao.common.utils.L;
|
||||
import com.yunbao.live.R;
|
||||
import com.yunbao.live.activity.LiveActivity;
|
||||
import com.yunbao.live.activity.LiveAudienceActivity;
|
||||
import com.yunbao.live.dialog.LiveUserDialogFragment;
|
||||
|
||||
import org.greenrobot.eventbus.EventBus;
|
||||
|
||||
import static com.yunbao.common.CommonAppConfig.isGetNewWrap;
|
||||
import org.greenrobot.eventbus.Subscribe;
|
||||
import org.greenrobot.eventbus.ThreadMode;
|
||||
|
||||
/**
|
||||
* Created by cxf on 2018/10/15.
|
||||
@@ -42,9 +36,11 @@ public class TurnTableWebViewHolder extends AbsLivePageViewHolder implements Vie
|
||||
private ProgressBar mProgressBar;
|
||||
private WebView mWebView;
|
||||
private String mUrl;
|
||||
private Activity mContext;
|
||||
|
||||
public TurnTableWebViewHolder(Context context, ViewGroup parentView, String url) {
|
||||
public TurnTableWebViewHolder(Activity context, ViewGroup parentView, String url) {
|
||||
super(context, parentView, url);
|
||||
mContext = context;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -60,6 +56,7 @@ public class TurnTableWebViewHolder extends AbsLivePageViewHolder implements Vie
|
||||
@Override
|
||||
public void init() {
|
||||
super.init();
|
||||
Bus.getOn(this);
|
||||
mProgressBar = (ProgressBar) findViewById(R.id.progressbar);
|
||||
mWebView = new WebView(mContext);
|
||||
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
|
||||
@@ -78,7 +75,7 @@ public class TurnTableWebViewHolder extends AbsLivePageViewHolder implements Vie
|
||||
|
||||
});
|
||||
|
||||
mWebView.addJavascriptInterface(new JsInteration(),"androidObject");
|
||||
mWebView.addJavascriptInterface(new JavascriptInterfaceUtils(mContext, mWebView), "androidObject");
|
||||
mWebView.setWebChromeClient(new WebChromeClient() {
|
||||
@Override
|
||||
public void onProgressChanged(WebView view, int newProgress) {
|
||||
@@ -92,25 +89,6 @@ public class TurnTableWebViewHolder extends AbsLivePageViewHolder implements Vie
|
||||
((LinearLayout) mContentView).addView(mWebView);
|
||||
}
|
||||
|
||||
//js调用原生
|
||||
public class JsInteration {
|
||||
@JavascriptInterface
|
||||
public String androidMethod(String data) {
|
||||
if (data != null && !data.isEmpty()) {
|
||||
WebViewActivity.forward(mContext, HtmlConfig.SHOP);
|
||||
EventBus.getDefault().post(new JsTurnTableBean(data));
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
@JavascriptInterface
|
||||
public String androidGetNewWrap(String data) {
|
||||
if (data != null && !data.isEmpty()) {
|
||||
isGetNewWrap = true;
|
||||
}
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void loadData() {
|
||||
@@ -124,6 +102,7 @@ public class TurnTableWebViewHolder extends AbsLivePageViewHolder implements Vie
|
||||
|
||||
@Override
|
||||
public void release() {
|
||||
Bus.getOff(this);
|
||||
super.release();
|
||||
if (mWebView != null) {
|
||||
ViewGroup parent = (ViewGroup) mWebView.getParent();
|
||||
@@ -140,4 +119,16 @@ public class TurnTableWebViewHolder extends AbsLivePageViewHolder implements Vie
|
||||
public void onHide() {
|
||||
|
||||
}
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
public void onJavascriptInterfaceEvent(JavascriptInterfaceEvent event) {
|
||||
if (!TextUtils.isEmpty(event.getMethod())) {
|
||||
if (TextUtils.equals(event.getMethod(), "androidMethod")) {
|
||||
if (event.getData() != null && !event.getData().isEmpty()) {
|
||||
WebViewActivity.forward(mContext, HtmlConfig.SHOP);
|
||||
EventBus.getDefault().post(new JsTurnTableBean(event.getData()));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,35 +1,33 @@
|
||||
package com.yunbao.live.views;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.Context;
|
||||
import android.graphics.Color;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.text.TextUtils;
|
||||
import android.util.Log;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.webkit.JavascriptInterface;
|
||||
import android.webkit.WebChromeClient;
|
||||
import android.webkit.WebSettings;
|
||||
import android.webkit.WebView;
|
||||
import android.webkit.WebViewClient;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.ProgressBar;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.yunbao.common.CommonAppConfig;
|
||||
import com.yunbao.common.Constants;
|
||||
import com.yunbao.common.bean.JsWishBean;
|
||||
import com.yunbao.common.utils.DpUtil;
|
||||
import com.yunbao.common.event.JavascriptInterfaceEvent;
|
||||
import com.yunbao.common.utils.Bus;
|
||||
import com.yunbao.common.utils.JavascriptInterfaceUtils;
|
||||
import com.yunbao.common.utils.L;
|
||||
import com.yunbao.common.utils.RouteUtil;
|
||||
import com.yunbao.live.R;
|
||||
import com.yunbao.live.activity.LiveActivity;
|
||||
import com.yunbao.live.activity.LiveAudienceActivity;
|
||||
import com.yunbao.live.dialog.LiveTrickeryDialogFragment4Audience;
|
||||
import com.yunbao.live.dialog.LiveUserDialogFragment;
|
||||
|
||||
import org.greenrobot.eventbus.EventBus;
|
||||
import org.greenrobot.eventbus.Subscribe;
|
||||
import org.greenrobot.eventbus.ThreadMode;
|
||||
|
||||
/**
|
||||
* Created by cxf on 2018/10/15.
|
||||
@@ -59,6 +57,7 @@ public class WishlistWebViewHolder extends AbsLivePageViewHolder implements View
|
||||
@Override
|
||||
public void init() {
|
||||
super.init();
|
||||
Bus.getOn(this);
|
||||
mProgressBar = (ProgressBar) findViewById(R.id.progressbar);
|
||||
mWebView = new WebView(mContext);
|
||||
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
|
||||
@@ -98,7 +97,7 @@ public class WishlistWebViewHolder extends AbsLivePageViewHolder implements View
|
||||
// 自适应 屏幕大小界面
|
||||
webSettings.setLoadWithOverviewMode(true);
|
||||
|
||||
mWebView.addJavascriptInterface(new JsInteration(),"androidObject");
|
||||
mWebView.addJavascriptInterface(new JavascriptInterfaceUtils((Activity) mContext, mWebView).setPageClose(false), "androidObject");
|
||||
mWebView.setWebChromeClient(new WebChromeClient() {
|
||||
@Override
|
||||
public void onProgressChanged(WebView view, int newProgress) {
|
||||
@@ -112,35 +111,11 @@ public class WishlistWebViewHolder extends AbsLivePageViewHolder implements View
|
||||
((LinearLayout) mContentView).addView(mWebView);
|
||||
}
|
||||
|
||||
//js调用原生
|
||||
public class JsInteration {
|
||||
@JavascriptInterface
|
||||
public String androidMethod(String data) {
|
||||
if (data != null && !data.isEmpty()) {
|
||||
EventBus.getDefault().post(new JsWishBean(data));
|
||||
}
|
||||
return "";
|
||||
}
|
||||
@JavascriptInterface
|
||||
public String androidMethodClickUser(String userId,String liveId) {
|
||||
//点击用户头像
|
||||
if (!TextUtils.isEmpty(userId) && !TextUtils.isEmpty(liveId)) {
|
||||
showUserDialog(userId, liveId);
|
||||
}
|
||||
return "";
|
||||
}
|
||||
@JavascriptInterface
|
||||
public void onTrickerySendGift(String id) {
|
||||
if (id != null) {
|
||||
EventBus.getDefault().post(new JsWishBean(id));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 显示个人资料弹窗
|
||||
*/
|
||||
private void showUserDialog(String toUid,String liveId) {
|
||||
private void showUserDialog(String toUid, String liveId) {
|
||||
if (!TextUtils.isEmpty(liveId) && !TextUtils.isEmpty(toUid)) {
|
||||
LiveUserDialogFragment fragment = new LiveUserDialogFragment();
|
||||
Bundle bundle = new Bundle();
|
||||
@@ -151,6 +126,7 @@ public class WishlistWebViewHolder extends AbsLivePageViewHolder implements View
|
||||
fragment.show(((LiveActivity) mContext).getSupportFragmentManager(), "LiveUserDialogFragment");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void loadData() {
|
||||
if (!mLoad) {
|
||||
@@ -163,6 +139,7 @@ public class WishlistWebViewHolder extends AbsLivePageViewHolder implements View
|
||||
|
||||
@Override
|
||||
public void release() {
|
||||
Bus.getOff(this);
|
||||
super.release();
|
||||
if (mWebView != null) {
|
||||
ViewGroup parent = (ViewGroup) mWebView.getParent();
|
||||
@@ -179,4 +156,24 @@ public class WishlistWebViewHolder extends AbsLivePageViewHolder implements View
|
||||
public void onHide() {
|
||||
|
||||
}
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
public void onJavascriptInterfaceEvent(JavascriptInterfaceEvent event) {
|
||||
if (!TextUtils.isEmpty(event.getMethod())) {
|
||||
if (TextUtils.equals(event.getMethod(), "androidMethod")) {
|
||||
if (event.getData() != null && !event.getData().isEmpty()) {
|
||||
EventBus.getDefault().post(new JsWishBean(event.getData()));
|
||||
}
|
||||
} else if (TextUtils.equals(event.getMethod(), "androidMethodClickUser")) {
|
||||
//点击用户头像
|
||||
if (!TextUtils.isEmpty(event.getUserId()) && !TextUtils.isEmpty(event.getLiveId())) {
|
||||
showUserDialog(event.getUserId(), event.getLiveId());
|
||||
}
|
||||
} else if (TextUtils.equals(event.getMethod(), "onTrickerySendGift")) {
|
||||
if (event.getUserId() != null) {
|
||||
EventBus.getDefault().post(new JsWishBean(event.getUserId()));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user