Commit 6a5b68ed authored by zxhljwl's avatar zxhljwl

修改

parent aa0927d3
...@@ -38,6 +38,7 @@ dependencies { ...@@ -38,6 +38,7 @@ dependencies {
api fileTree(include: ['*.jar'], dir: 'libs') api fileTree(include: ['*.jar'], dir: 'libs')
api fileTree(include: ['*.aar'], dir: 'libs') api fileTree(include: ['*.aar'], dir: 'libs')
implementation project(path: ':zxhcsdk') implementation project(path: ':zxhcsdk')
api 'com.android.support:design:28.0.0' //api 'com.android.support:design:28.0.0'
api 'com.android.support:support-v4:28.0.0' //api 'com.android.support:support-v4:28.0.0'
implementation 'androidx.appcompat:appcompat:1.0.2'
} }
\ No newline at end of file
...@@ -12,6 +12,7 @@ import com.ym.zxhcsdk.HcDownLoadUtils; ...@@ -12,6 +12,7 @@ import com.ym.zxhcsdk.HcDownLoadUtils;
import com.ym.zxhcsdk.HcAdBean; import com.ym.zxhcsdk.HcAdBean;
import com.ym.zxhcsdk.PhoneUtils; import com.ym.zxhcsdk.PhoneUtils;
import com.ym.zxhcsdk.ZXHCConstant; import com.ym.zxhcsdk.ZXHCConstant;
import com.ym.zxhcsdk.ads.RewardVideoPlayerUtils;
import com.ym.zxhcsdk.ads.RewardvideoPortraitADActivity; import com.ym.zxhcsdk.ads.RewardvideoPortraitADActivity;
import com.ym.zxhcsdk.listener.FeedAdListener; import com.ym.zxhcsdk.listener.FeedAdListener;
import com.ym.zxhcsdk.listener.RewardVideoAdLoadListener; import com.ym.zxhcsdk.listener.RewardVideoAdLoadListener;
...@@ -126,7 +127,12 @@ public class MainActivity extends Activity { ...@@ -126,7 +127,12 @@ public class MainActivity extends Activity {
RewardAd(); RewardAd();
} }
}); });
findViewById(R.id.RewardAd_show).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(MainActivity.this, RewardvideoPortraitADActivity.class));
}
});
} }
...@@ -166,11 +172,13 @@ public class MainActivity extends Activity { ...@@ -166,11 +172,13 @@ public class MainActivity extends Activity {
} }
private void RewardAd(){
new ZXHCRewardVideoAD(this,"1100139").loadRewardAD(new RewardVideoAdLoadListener() { private void RewardAd() {
ZXHCRewardVideoAD zxhcRewardVideoAD = new ZXHCRewardVideoAD(this,"1100139");
zxhcRewardVideoAD.loadRewardAD(new RewardVideoAdLoadListener() {
@Override @Override
public void OnAdLoaded() { public void OnAdLoaded() {
startActivity(new Intent(MainActivity.this, RewardvideoPortraitADActivity.class)); RewardVideoPlayerUtils.getInstance().setVideo(zxhcRewardVideoAD);
} }
@Override @Override
......
...@@ -28,7 +28,12 @@ ...@@ -28,7 +28,12 @@
android:id="@+id/RewardAd" android:id="@+id/RewardAd"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="激励视频"></Button> android:text="加载激励视频"></Button>
<Button
android:id="@+id/RewardAd_show"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="播放激励视频"></Button>
<FrameLayout <FrameLayout
android:id="@+id/test_img_ad" android:id="@+id/test_img_ad"
android:layout_width="wrap_content" android:layout_width="wrap_content"
......
...@@ -14,6 +14,6 @@ org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8 ...@@ -14,6 +14,6 @@ org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8
# AndroidX package structure to make it clearer which packages are bundled with the # AndroidX package structure to make it clearer which packages are bundled with the
# Android operating system, and which are packaged with your app"s APK # Android operating system, and which are packaged with your app"s APK
# https://developer.android.com/topic/libraries/support-library/androidx-rn # https://developer.android.com/topic/libraries/support-library/androidx-rn
android.useAndroidX=false android.useAndroidX=true
# Automatically convert third-party libraries to use AndroidX # Automatically convert third-party libraries to use AndroidX
android.enableJetifier=false android.enableJetifier=true
\ No newline at end of file \ No newline at end of file
...@@ -32,9 +32,11 @@ dependencies { ...@@ -32,9 +32,11 @@ dependencies {
api fileTree(include: ['*.jar'], dir: 'libs') api fileTree(include: ['*.jar'], dir: 'libs')
api fileTree(include: ['*.aar'], dir: 'libs') api fileTree(include: ['*.aar'], dir: 'libs')
api 'com.android.support:design:28.0.0' //api 'com.android.support:design:28.0.0'
api 'com.android.support:support-v4:28.0.0' //api 'com.android.support:support-v4:28.0.0'
// implementation 'com.android.support:appcompat-v7:28.0.0' // implementation 'com.android.support:appcompat-v7:28.0.0'
// implementation 'com.android.support.constraint:constraint-layout:1.1.3' // implementation 'com.android.support.constraint:constraint-layout:1.1.3'
implementation 'com.github.badoo:android-weak-handler:1.2' implementation 'com.github.badoo:android-weak-handler:1.2'
implementation 'androidx.core:core:1.3.2'
implementation 'androidx.appcompat:appcompat:1.0.2'
} }
\ No newline at end of file
...@@ -28,7 +28,7 @@ ...@@ -28,7 +28,7 @@
</activity> </activity>
<provider <provider
android:name="android.support.v4.content.FileProvider" android:name="androidx.core.content.FileProvider"
android:authorities="${applicationId}.zxhc.fileProvider" android:authorities="${applicationId}.zxhc.fileProvider"
android:exported="false" android:exported="false"
android:grantUriPermissions="true"> android:grantUriPermissions="true">
......
...@@ -39,6 +39,29 @@ public class HcAdBean { ...@@ -39,6 +39,29 @@ public class HcAdBean {
private boolean isClickDpLinkSucReport; private boolean isClickDpLinkSucReport;
private boolean isClickDpLinkfailReport; private boolean isClickDpLinkfailReport;
//Video
private int video_duration;
private String video_url;
private String video_cover_image;
private String video_end_image;
private String video_endpage_html;
private String video_endbuttonurl;
private String video_icon_url;
private String video_title;
private String video_desc;
private String video_iconbuttontext;
private List<String> video_start;
private List<String> video_one_quarter;
private List<String> video_one_half;
private List<String> video_three_quarter;
private List<String> video_complete;
private List<String> video_pause;
private List<String> video_resume;
private List<String> video_skip;
private List<String> video_close;
public boolean isClickDpLinkSucReport() { public boolean isClickDpLinkSucReport() {
return isClickDpLinkSucReport; return isClickDpLinkSucReport;
} }
...@@ -307,4 +330,156 @@ public class HcAdBean { ...@@ -307,4 +330,156 @@ public class HcAdBean {
public void setDpFailmonitorUrls(List<String> dpFailmonitorUrls) { public void setDpFailmonitorUrls(List<String> dpFailmonitorUrls) {
this.dpFailmonitorUrls = dpFailmonitorUrls; this.dpFailmonitorUrls = dpFailmonitorUrls;
} }
public int getVideo_duration() {
return video_duration;
}
public void setVideo_duration(int video_duration) {
this.video_duration = video_duration;
}
public String getVideo_url() {
return video_url;
}
public void setVideo_url(String video_url) {
this.video_url = video_url;
}
public String getVideo_cover_image() {
return video_cover_image;
}
public void setVideo_cover_image(String video_cover_image) {
this.video_cover_image = video_cover_image;
}
public String getVideo_end_image() {
return video_end_image;
}
public void setVideo_end_image(String video_end_image) {
this.video_end_image = video_end_image;
}
public String getVideo_endpage_html() {
return video_endpage_html;
}
public void setVideo_endpage_html(String video_endpage_html) {
this.video_endpage_html = video_endpage_html;
}
public String getVideo_endbuttonurl() {
return video_endbuttonurl;
}
public void setVideo_endbuttonurl(String video_endbuttonurl) {
this.video_endbuttonurl = video_endbuttonurl;
}
public String getVideo_icon_url() {
return video_icon_url;
}
public void setVideo_icon_url(String video_icon_url) {
this.video_icon_url = video_icon_url;
}
public String getVideo_title() {
return video_title;
}
public void setVideo_title(String video_title) {
this.video_title = video_title;
}
public String getVideo_desc() {
return video_desc;
}
public void setVideo_desc(String video_desc) {
this.video_desc = video_desc;
}
public String getVideo_iconbuttontext() {
return video_iconbuttontext;
}
public void setVideo_iconbuttontext(String video_iconbuttontext) {
this.video_iconbuttontext = video_iconbuttontext;
}
public List<String> getVideo_start() {
return video_start;
}
public void setVideo_start(List<String> video_start) {
this.video_start = video_start;
}
public List<String> getVideo_one_quarter() {
return video_one_quarter;
}
public void setVideo_one_quarter(List<String> video_one_quarter) {
this.video_one_quarter = video_one_quarter;
}
public List<String> getVideo_one_half() {
return video_one_half;
}
public void setVideo_one_half(List<String> video_one_half) {
this.video_one_half = video_one_half;
}
public List<String> getVideo_three_quarter() {
return video_three_quarter;
}
public void setVideo_three_quarter(List<String> video_three_quarter) {
this.video_three_quarter = video_three_quarter;
}
public List<String> getVideo_complete() {
return video_complete;
}
public void setVideo_complete(List<String> video_complete) {
this.video_complete = video_complete;
}
public List<String> getVideo_pause() {
return video_pause;
}
public void setVideo_pause(List<String> video_pause) {
this.video_pause = video_pause;
}
public List<String> getVideo_resume() {
return video_resume;
}
public void setVideo_resume(List<String> video_resume) {
this.video_resume = video_resume;
}
public List<String> getVideo_skip() {
return video_skip;
}
public void setVideo_skip(List<String> video_skip) {
this.video_skip = video_skip;
}
public List<String> getVideo_close() {
return video_close;
}
public void setVideo_close(List<String> video_close) {
this.video_close = video_close;
}
} }
...@@ -10,11 +10,9 @@ import android.database.Cursor; ...@@ -10,11 +10,9 @@ import android.database.Cursor;
import android.net.Uri; import android.net.Uri;
import android.os.Build; import android.os.Build;
import android.os.Environment; import android.os.Environment;
import android.support.v4.content.FileProvider;
import android.text.TextUtils; import android.text.TextUtils;
import androidx.core.content.FileProvider;
import java.io.File; import java.io.File;
import static android.content.Context.DOWNLOAD_SERVICE; import static android.content.Context.DOWNLOAD_SERVICE;
public class HcDownLoadUtils { public class HcDownLoadUtils {
......
...@@ -18,17 +18,15 @@ import android.net.wifi.WifiInfo; ...@@ -18,17 +18,15 @@ import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager; import android.net.wifi.WifiManager;
import android.os.Build; import android.os.Build;
import android.provider.Settings; import android.provider.Settings;
import android.support.v4.app.ActivityCompat;
import android.telephony.TelephonyManager; import android.telephony.TelephonyManager;
import android.text.TextUtils; import android.text.TextUtils;
import android.util.DisplayMetrics; import android.util.DisplayMetrics;
import android.view.Display; import android.view.Display;
import android.webkit.WebSettings; import android.webkit.WebSettings;
import androidx.core.app.ActivityCompat;
import org.json.JSONArray; import org.json.JSONArray;
import org.json.JSONException; import org.json.JSONException;
import org.json.JSONObject; import org.json.JSONObject;
import java.io.BufferedReader; import java.io.BufferedReader;
import java.io.FileReader; import java.io.FileReader;
import java.io.IOException; import java.io.IOException;
......
package com.ym.zxhcsdk.ads;
import com.ym.zxhcsdk.view.ZXHCRewardVideoAD;
import java.util.ArrayList;
import java.util.List;
public class RewardVideoPlayerUtils {
public List<ZXHCRewardVideoAD> list = new ArrayList<>();
public static RewardVideoPlayerUtils rewardVideoPlayerUtils;
public static RewardVideoPlayerUtils getInstance() {
if (rewardVideoPlayerUtils == null) {
rewardVideoPlayerUtils = new RewardVideoPlayerUtils();
}
return rewardVideoPlayerUtils;
}
public void setVideo(ZXHCRewardVideoAD zxhcRewardVideoAD) {
list.add(zxhcRewardVideoAD);
}
public ZXHCRewardVideoAD getVideo() {
if (null != list && list.size() > 0) {
for (int i = 0; i < list.size(); i++) {
if (list.get(i).isLoadFinish) {
return list.get(i);
}
}
}
return null;
}
}
...@@ -4,19 +4,18 @@ import android.app.Activity; ...@@ -4,19 +4,18 @@ import android.app.Activity;
import android.media.MediaPlayer; import android.media.MediaPlayer;
import android.os.Bundle; import android.os.Bundle;
import android.os.CountDownTimer; import android.os.CountDownTimer;
import android.support.annotation.NonNull;
import android.util.Log; import android.util.Log;
import android.view.KeyEvent; import android.view.KeyEvent;
import android.view.SurfaceHolder; import android.view.SurfaceHolder;
import android.view.SurfaceView; import android.view.SurfaceView;
import android.view.View; import android.view.View;
import android.widget.Button;
import android.widget.FrameLayout; import android.widget.FrameLayout;
import android.widget.ImageView; import android.widget.ImageView;
import android.widget.TextView; import android.widget.TextView;
import androidx.annotation.NonNull;
import com.badoo.mobile.util.WeakHandler; import com.badoo.mobile.util.WeakHandler;
import com.ym.zxhcsdk.R; import com.ym.zxhcsdk.R;
import com.ym.zxhcsdk.view.ZXHCRewardVideoAD;
import java.io.IOException; import java.io.IOException;
...@@ -35,23 +34,23 @@ public class RewardvideoPortraitADActivity extends Activity implements SurfaceHo ...@@ -35,23 +34,23 @@ public class RewardvideoPortraitADActivity extends Activity implements SurfaceHo
private ImageView TopClose; private ImageView TopClose;
private WeakHandler mHandler; private WeakHandler mHandler;
public ZXHCRewardVideoAD mZxhcRewardVideoAD;
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
setContentView(R.layout.activity_rewardvideo_portrait_a_d); setContentView(R.layout.activity_rewardvideo_portrait_a_d);
mZxhcRewardVideoAD = RewardVideoPlayerUtils.getInstance().getVideo();
if (null != mZxhcRewardVideoAD) {
mPlayer =mZxhcRewardVideoAD.mMediaPlayer;
}
mHandler = new WeakHandler(); mHandler = new WeakHandler();
bindViews(); bindViews();
} }
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(keyCode == KeyEvent.KEYCODE_BACK){
return true;
}
return super.onKeyDown(keyCode, event);
}
private void bindViews() { private void bindViews() {
sfv_reward_show = findViewById(R.id.sfv_reward_video_ad_show); sfv_reward_show = findViewById(R.id.sfv_reward_video_ad_show);
...@@ -67,7 +66,10 @@ public class RewardvideoPortraitADActivity extends Activity implements SurfaceHo ...@@ -67,7 +66,10 @@ public class RewardvideoPortraitADActivity extends Activity implements SurfaceHo
surfaceHolder.addCallback(this); surfaceHolder.addCallback(this);
SetAdVideo(); SetAdVideo();
// mPlayer = new MediaPlayer();
// mPlayer.setDataSource("https://zx-cdn.zhangxinhulian.com/file/2020/5/8447fa5488ee19a54d2adbe8d127693045540211.mp4");
// // mPlayer.setDisplay(surfaceHolder);
// mPlayer.prepareAsync();
TopClose.setOnClickListener(new View.OnClickListener() { TopClose.setOnClickListener(new View.OnClickListener() {
@Override @Override
...@@ -82,64 +84,15 @@ public class RewardvideoPortraitADActivity extends Activity implements SurfaceHo ...@@ -82,64 +84,15 @@ public class RewardvideoPortraitADActivity extends Activity implements SurfaceHo
TopTimeTv.setVisibility(View.VISIBLE); TopTimeTv.setVisibility(View.VISIBLE);
} }
@Override
protected void onResume() {
super.onResume();
if (mPlayer!=null){
if (!mPlayer.isPlaying()){
mPlayer.start();
}
}
}
@Override
protected void onPause() {
super.onPause();
if (mPlayer!=null){
if (mPlayer.isPlaying()){
mPlayer.pause();
}
}
}
@Override
protected void onDestroy() {
if (mPlayer!=null){
mPlayer.release();
mPlayer=null;
}
super.onDestroy();
}
@Override @Override
public void surfaceCreated(@NonNull SurfaceHolder holder) { public void surfaceCreated(@NonNull SurfaceHolder holder) {
Log.d("wxw", "surfaceCreated"); Log.d("wxw", "surfaceCreated");
if (mPlayer!=null){ if (mPlayer!=null){
mPlayer.setDisplay(surfaceHolder); mPlayer.setDisplay(surfaceHolder);
return; // return;
} }
try {
mPlayer = new MediaPlayer();
mPlayer.setDataSource("https://zx-cdn.zhangxinhulian.com/file/2020/5/8447fa5488ee19a54d2adbe8d127693045540211.mp4");
mPlayer.setDisplay(surfaceHolder);
mPlayer.prepareAsync();
//网络流媒体的缓冲监听
mPlayer.setOnBufferingUpdateListener(new MediaPlayer.OnBufferingUpdateListener() {
@Override
public void onBufferingUpdate(MediaPlayer mp, int percent) {
Log.d("wxw", "percent" + percent);
if (percent==100){
mp.start();
}
Log.d("wxw", "mp.getCurrentPosition() " + mp.getCurrentPosition());
}
});
//网络流媒体播放结束监听 //网络流媒体播放结束监听
mPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() { mPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override @Override
...@@ -174,9 +127,7 @@ public class RewardvideoPortraitADActivity extends Activity implements SurfaceHo ...@@ -174,9 +127,7 @@ public class RewardvideoPortraitADActivity extends Activity implements SurfaceHo
}); });
//mPlayer.start(); //mPlayer.start();
} catch (IOException e) {
e.printStackTrace();
}
} }
@Override @Override
...@@ -214,5 +165,40 @@ public class RewardvideoPortraitADActivity extends Activity implements SurfaceHo ...@@ -214,5 +165,40 @@ public class RewardvideoPortraitADActivity extends Activity implements SurfaceHo
countDownTimer.start(); countDownTimer.start();
} }
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(keyCode == KeyEvent.KEYCODE_BACK){
return true;
}
return super.onKeyDown(keyCode, event);
}
@Override
protected void onResume() {
super.onResume();
if (mPlayer!=null){
if (!mPlayer.isPlaying()){
mPlayer.start();
}
}
}
@Override
protected void onPause() {
super.onPause();
if (mPlayer!=null){
if (mPlayer.isPlaying()){
mPlayer.pause();
}
}
}
@Override
protected void onDestroy() {
if (mPlayer!=null){
mPlayer.release();
mPlayer=null;
}
super.onDestroy();
}
} }
\ No newline at end of file
...@@ -11,5 +11,4 @@ public interface RewardVideoAdLoadListener { ...@@ -11,5 +11,4 @@ public interface RewardVideoAdLoadListener {
/// 激励视频广告各种错误信息回调 /// 激励视频广告各种错误信息回调
/// </summary> /// </summary>
void OnLoadError(String error); void OnLoadError(String error);
} }
package com.ym.zxhcsdk.view; package com.ym.zxhcsdk.view;
import android.app.Activity; import android.app.Activity;
import android.content.Intent; import android.media.MediaPlayer;
import android.graphics.Bitmap; import android.util.Log;
import com.ym.zxhcsdk.HcAdBean; import com.ym.zxhcsdk.HcAdBean;
import com.ym.zxhcsdk.HttpClientUtils; import com.ym.zxhcsdk.HttpClientUtils;
import com.ym.zxhcsdk.PhoneUtils; import com.ym.zxhcsdk.PhoneUtils;
import com.ym.zxhcsdk.ZXHCConstant; import com.ym.zxhcsdk.ZXHCConstant;
import com.ym.zxhcsdk.listener.FeedAdListener;
import com.ym.zxhcsdk.listener.RewardVideoAdLoadListener; import com.ym.zxhcsdk.listener.RewardVideoAdLoadListener;
import java.io.IOException;
import java.io.Serializable;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
public class ZXHCRewardVideoAD { public class ZXHCRewardVideoAD implements Serializable {
private Activity context; private Activity context;
private String codeId; private String codeId;
public MediaPlayer mMediaPlayer;
public boolean isLoadFinish;
public ZXHCRewardVideoAD(Activity context, String codeId) { public ZXHCRewardVideoAD(Activity context, String codeId) {
this.context = context; this.context = context;
this.codeId = codeId; this.codeId = codeId;
} }
private HcAdBean adBean; private HcAdBean adBean;
public void loadRewardAD(RewardVideoAdLoadListener mlistener) { public void loadRewardAD(RewardVideoAdLoadListener mlistener) {
Map<String, String> map = new HashMap<>(); Map<String, String> map = new HashMap<>();
...@@ -50,6 +53,28 @@ public class ZXHCRewardVideoAD { ...@@ -50,6 +53,28 @@ public class ZXHCRewardVideoAD {
if (adBean.getSrcUrls().size() > 0) { if (adBean.getSrcUrls().size() > 0) {
} }
try {
isLoadFinish = false;
mMediaPlayer = new MediaPlayer();
mMediaPlayer.setDataSource("https://zx-cdn.zhangxinhulian.com/file/2020/5/8447fa5488ee19a54d2adbe8d127693045540211.mp4");
// mPlayer.setDisplay(surfaceHolder);
mMediaPlayer.prepareAsync();
//网络流媒体的缓冲监听
mMediaPlayer.setOnBufferingUpdateListener(new MediaPlayer.OnBufferingUpdateListener() {
@Override
public void onBufferingUpdate(MediaPlayer mp, int percent) {
Log.d("wxw", "percent" + percent);
if (percent==100){
// mp.start();
isLoadFinish = true;
}
Log.d("wxw", "mp.getCurrentPosition() " + mp.getCurrentPosition());
}
});
} catch (IOException e) {
e.printStackTrace();
}
} }
@Override @Override
...@@ -66,5 +91,4 @@ public class ZXHCRewardVideoAD { ...@@ -66,5 +91,4 @@ public class ZXHCRewardVideoAD {
} }
}); });
} }
} }
...@@ -2,30 +2,20 @@ package com.ym.zxhcsdk.webview; ...@@ -2,30 +2,20 @@ package com.ym.zxhcsdk.webview;
import android.app.Activity; import android.app.Activity;
import android.content.Intent; import android.content.Intent;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager; import android.content.pm.PackageManager;
import android.net.Uri; import android.net.Uri;
import android.os.Bundle; import android.os.Bundle;
import android.os.Message; import android.os.Message;
import android.support.annotation.Nullable;
import android.util.Log;
import android.view.View; import android.view.View;
import android.webkit.DownloadListener; import android.webkit.DownloadListener;
import android.webkit.WebChromeClient; import android.webkit.WebChromeClient;
import android.webkit.WebResourceError;
import android.webkit.WebResourceRequest;
import android.webkit.WebResourceResponse;
import android.webkit.WebSettings; import android.webkit.WebSettings;
import android.webkit.WebView; import android.webkit.WebView;
import android.webkit.WebViewClient; import android.webkit.WebViewClient;
import com.ym.zxhcsdk.HcAppliContext; import com.ym.zxhcsdk.HcAppliContext;
import com.ym.zxhcsdk.R; import com.ym.zxhcsdk.R;
import com.ym.zxhcsdk.ZXHCConstant; import com.ym.zxhcsdk.ZXHCConstant;
import java.util.List;
import java.util.Locale;
public class HcWebActivity extends Activity { public class HcWebActivity extends Activity {
private String url; private String url;
private HcCustomWebView webView; private HcCustomWebView webView;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment