Commit adc7c2e3 authored by 王雪伟's avatar 王雪伟

修改web跳转

parent bd542b60
...@@ -27,6 +27,10 @@ ...@@ -27,6 +27,10 @@
<category android:name="android.intent.category.LAUNCHER" /> <category android:name="android.intent.category.LAUNCHER" />
</intent-filter> </intent-filter>
</activity> </activity>
<!-- BlackBox 请在下面配置您的partnercode-->
<meta-data
android:name="PARTNER_CODE"
android:value="yanmao" />
</application> </application>
</manifest> </manifest>
\ No newline at end of file
package com.ym.zxhcsdkaar;
public interface ITdListener {
void getTd(String s);
}
package com.ym.zxhcsdkaar;
import android.content.Context;
import android.util.Log;
import com.ym.zxhcsdk.HttpClientUtils;
import cn.tongdun.android.shell.FMAgent;
import cn.tongdun.android.shell.inter.FMCallback;
public class TDUtils {
public void TD(Context context, ITdListener listener){
new FMAgent().initWithCallback(context, FMAgent.ENV_PRODUCTION, new FMCallback() {
@Override
public void onEvent(String s) {
listener.getTd(s);
}
});
}
}
...@@ -16,11 +16,9 @@ ...@@ -16,11 +16,9 @@
<application> <application>
<activity <activity
android:name=".webview.WebActivity" android:name="com.ym.zxhcsdk.webview.HcWebActivity"
android:exported="true" android:exported="true"
android:screenOrientation="fullSensor" android:screenOrientation="fullSensor">
android:theme="@android:style/Theme.Light.NoTitleBar"
>
<intent-filter> <intent-filter>
<action android:name="android.intent.action.VIEW" /> <action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.DEFAULT" />
......
...@@ -14,9 +14,7 @@ public class AppInstallReceive extends BroadcastReceiver { ...@@ -14,9 +14,7 @@ public class AppInstallReceive extends BroadcastReceiver {
if (TextUtils.equals(intent.getAction(),Intent.ACTION_PACKAGE_ADDED)){ if (TextUtils.equals(intent.getAction(),Intent.ACTION_PACKAGE_ADDED)){
String packageName = intent.getData().getSchemeSpecificPart(); String packageName = intent.getData().getSchemeSpecificPart();
if (!TextUtils.isEmpty(packageName)) { if (!TextUtils.isEmpty(packageName)) {
Log.d("wxw","安装完成"+ZXHCConstant.adList.size());
for (int i =0;i<ZXHCConstant.adList.size();i++){ for (int i =0;i<ZXHCConstant.adList.size();i++){
Log.d("wxw","安装完成"+ZXHCConstant.adList.get(0).getPackage_name());
if (packageName.equals(ZXHCConstant.adList.get(i).getPackage_name())){ if (packageName.equals(ZXHCConstant.adList.get(i).getPackage_name())){
InstallFinishReport(ZXHCConstant.adList.get(i)); InstallFinishReport(ZXHCConstant.adList.get(i));
ZXHCConstant.adList.remove(i); ZXHCConstant.adList.remove(i);
...@@ -28,13 +26,11 @@ public class AppInstallReceive extends BroadcastReceiver { ...@@ -28,13 +26,11 @@ public class AppInstallReceive extends BroadcastReceiver {
if (TextUtils.equals(intent.getAction(),Intent.ACTION_PACKAGE_REMOVED)){ if (TextUtils.equals(intent.getAction(),Intent.ACTION_PACKAGE_REMOVED)){
String packageName = intent.getData().getSchemeSpecificPart(); String packageName = intent.getData().getSchemeSpecificPart();
if (!TextUtils.isEmpty(packageName)) { if (!TextUtils.isEmpty(packageName)) {
Log.d("wxw","ACTION_PACKAGE_REMOVED"+ZXHCConstant.adList.size());
} }
} }
if (TextUtils.equals(intent.getAction(),Intent.ACTION_PACKAGE_REPLACED)){ if (TextUtils.equals(intent.getAction(),Intent.ACTION_PACKAGE_REPLACED)){
String packageName = intent.getData().getSchemeSpecificPart(); String packageName = intent.getData().getSchemeSpecificPart();
if (!TextUtils.isEmpty(packageName)) { if (!TextUtils.isEmpty(packageName)) {
Log.d("wxw","ACTION_PACKAGE_REPLACED"+ZXHCConstant.adList.size());
} }
} }
// intent.getAction() // intent.getAction()
......
...@@ -41,6 +41,9 @@ public class DownLoadUtils { ...@@ -41,6 +41,9 @@ public class DownLoadUtils {
//下载apk //下载apk
public boolean downloadAPK(HcAdBean adBean) { public boolean downloadAPK(HcAdBean adBean) {
if (ZXHCConstant.adList.size()<=0){
return false;
}
for (int i = 0; i < ZXHCConstant.adList.size(); i++) { for (int i = 0; i < ZXHCConstant.adList.size(); i++) {
if (ZXHCConstant.adList.get(i).getDUrl().equals(adBean.getDUrl())) { if (ZXHCConstant.adList.get(i).getDUrl().equals(adBean.getDUrl())) {
// Log.d("wxw", "正在下载"); // Log.d("wxw", "正在下载");
......
...@@ -11,7 +11,6 @@ import java.io.OutputStreamWriter; ...@@ -11,7 +11,6 @@ import java.io.OutputStreamWriter;
import java.net.HttpURLConnection; import java.net.HttpURLConnection;
import java.net.MalformedURLException; import java.net.MalformedURLException;
import java.net.URL; import java.net.URL;
import java.net.URLEncoder;
import java.util.HashMap; import java.util.HashMap;
import java.util.Iterator; import java.util.Iterator;
import java.util.Map; import java.util.Map;
...@@ -66,8 +65,8 @@ public class HttpClientUtils { ...@@ -66,8 +65,8 @@ public class HttpClientUtils {
HttpURLConnection connection = (HttpURLConnection) url.openConnection(); HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET"); connection.setRequestMethod("GET");
connection.setInstanceFollowRedirects(true); connection.setInstanceFollowRedirects(true);
connection.setConnectTimeout(50000); connection.setConnectTimeout(30000);
connection.setReadTimeout(50000); connection.setReadTimeout(30000);
// User-Agent IE9的标识 // User-Agent IE9的标识
//connection.setRequestProperty("User-Agent", "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0;"); //connection.setRequestProperty("User-Agent", "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0;");
connection.setRequestProperty("Accept-Language", "zh-CN"); connection.setRequestProperty("Accept-Language", "zh-CN");
...@@ -85,8 +84,6 @@ public class HttpClientUtils { ...@@ -85,8 +84,6 @@ public class HttpClientUtils {
//connection.setDoOutput(true);//Android 4.0 GET时候 用这句会变成POST 报错java.io.FileNotFoundException //connection.setDoOutput(true);//Android 4.0 GET时候 用这句会变成POST 报错java.io.FileNotFoundException
connection.setUseCaches(false); connection.setUseCaches(false);
connection.connect();// connection.connect();//
Log.d("wxw","connection.getURL(); "+connection.getURL());
int contentLength = connection.getContentLength(); int contentLength = connection.getContentLength();
if (connection.getResponseCode() == 200) { if (connection.getResponseCode() == 200) {
inputStream = connection.getInputStream();//会隐式调用connect() inputStream = connection.getInputStream();//会隐式调用connect()
...@@ -101,7 +98,6 @@ public class HttpClientUtils { ...@@ -101,7 +98,6 @@ public class HttpClientUtils {
isSuccess = true; isSuccess = true;
} else { } else {
//Log.d("wxw","errorUrl "+requestUrl);
message = "请求失败 code:" + connection.getResponseCode() + connection.getResponseMessage(); message = "请求失败 code:" + connection.getResponseCode() + connection.getResponseMessage();
} }
...@@ -228,6 +224,7 @@ public class HttpClientUtils { ...@@ -228,6 +224,7 @@ public class HttpClientUtils {
} }
private static void getImg(String url, OnRequestImgCallBack callBack) { private static void getImg(String url, OnRequestImgCallBack callBack) {
Log.d("wxw","wxw"+url);
boolean isSuccess = false; boolean isSuccess = false;
String message = ""; String message = "";
URL imgUrl = null; URL imgUrl = null;
...@@ -282,32 +279,6 @@ public class HttpClientUtils { ...@@ -282,32 +279,6 @@ public class HttpClientUtils {
request = new HashMap<>(); request = new HashMap<>();
} }
String str = ""; String str = "";
//// request.put("pid","2100154");
//// request.put("type","api");
//// request.put("ad_type","3");
//// request.put("ad_w","720");
//// request.put("ad_h","1280");
// request.put("app_id", ZXHCConstant.ZXHC_APPID);
// request.put("app_package","com.popcap.pvz2cthd");
// request.put("app_name","com.popcap.pvz2cthd");
// request.put("app_version","1005");
// request.put("device_imei","X6GNU17524105082");
// request.put("device_adid","d0cf1c3d5280f16b");
// request.put("device_mac","F0:C8:50:A1:4E:8E");
// request.put("device_width","1920");
// request.put("device_height","1132");
// request.put("device_imsi","460000501365163");
// request.put("device_network","1");
// request.put("device_os","Android");
// request.put("device_os_version","device_os_version");
// request.put("device_density","2.0");
// request.put("device_ppi","2.0");
// request.put("device_ip","183.211.87.156");
// request.put("device_ua","Dalvik%2F2.1.0+%28Linux%3B+U%3B+Android+9%3B+Redmi+Note+8+Pro+MIUI%2FV10.4.9.0.PGGCNXM%29");
// request.put("device_type","0");
// request.put("is_mobile","1");
// request.put("device_model","FLA-AL10");
// request.put("device_brand","HUAWEI");
request.put("app_id", ZXHCConstant.ZXHC_APPID); request.put("app_id", ZXHCConstant.ZXHC_APPID);
request.put("app_package", ZXHCConstant.app_package); request.put("app_package", ZXHCConstant.app_package);
request.put("app_name", ZXHCConstant.app_name); request.put("app_name", ZXHCConstant.app_name);
......
...@@ -25,6 +25,10 @@ import android.text.TextUtils; ...@@ -25,6 +25,10 @@ import android.text.TextUtils;
import android.util.DisplayMetrics; import android.util.DisplayMetrics;
import android.view.Display; import android.view.Display;
import org.json.JSONArray;
import org.json.JSONException;
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;
...@@ -40,6 +44,7 @@ import java.net.SocketException; ...@@ -40,6 +44,7 @@ import java.net.SocketException;
import java.net.URLEncoder; import java.net.URLEncoder;
import java.security.MessageDigest; import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException; import java.security.NoSuchAlgorithmException;
import java.util.ArrayList;
import java.util.Enumeration; import java.util.Enumeration;
import java.util.List; import java.util.List;
import java.util.Locale; import java.util.Locale;
...@@ -795,4 +800,138 @@ public class PhoneUtils { ...@@ -795,4 +800,138 @@ public class PhoneUtils {
} }
} }
public HcAdBean jsonToObj(String jsonString) {
HcAdBean adBean = null;
try {
JSONObject root = new JSONObject(jsonString);
adBean = new HcAdBean();
adBean.setHeight(root.optInt("height"));
adBean.setWidth(root.optInt("width"));
//曝光
JSONArray monitorUrl = root.optJSONArray("monitorUrl");
List<String> monitorList = new ArrayList<String>();
if (monitorUrl != null) {
for (int i = 0; i < monitorUrl.length(); i++) {
monitorList.add(monitorUrl.optString(i));
}
}
adBean.setMonitorUrl(monitorList);
//点击
JSONArray clickUrl = root.optJSONArray("clickUrl");
List<String> clickList = new ArrayList<String>();
if (clickUrl != null) {
for (int i = 0; i < clickUrl.length(); i++) {
clickList.add(clickUrl.optString(i));
}
}
adBean.setClickUrl(clickList);
//图片
JSONArray srcUrl = root.optJSONArray("srcUrls");
List<String> srcList = new ArrayList<String>();
if (srcUrl != null) {
for (int i = 0; i < srcUrl.length(); i++) {
srcList.add(srcUrl.optString(i));
}
}
adBean.setSrcUrls(srcList);
//落地页
JSONArray dUrl = root.optJSONArray("dUrl");
List<String> dList = new ArrayList<String>();
if (dUrl != null) {
for (int i = 0; i < dUrl.length(); i++) {
dList.add(dUrl.optString(i));
}
}
adBean.setDUrl(dList);
adBean.setPid(root.optString("pid"));
adBean.setCid(root.optInt("cid"));
adBean.setPlan_id(root.optInt("plan_id"));
adBean.setTarget_type(root.optString("target_type"));
adBean.setAd_show_type(root.optInt("ad_show_type"));
adBean.setFrom(root.optString("from"));
adBean.setReq_id(root.optString("req_id"));
adBean.setApp_name(root.optString("app_name"));
adBean.setPackage_name(root.optString("package_name"));
adBean.setDown_url(root.optString("down_url"));
adBean.setTitle(root.optString("title"));
adBean.setContent(root.optString("content"));
adBean.setDeeplink(root.optString("deeplink"));
JSONArray startInstallmonitorUrl = root.optJSONArray("startInstallmonitorUrls");
List<String> startInstallmonitorUrlList = new ArrayList<String>();
if (startInstallmonitorUrl != null) {
for (int i = 0; i < startInstallmonitorUrl.length(); i++) {
startInstallmonitorUrlList.add(startInstallmonitorUrl.optString(i));
}
}
adBean.setStartInstallmonitorUrls(startInstallmonitorUrlList);
JSONArray finishInstallmonitorUrl = root.optJSONArray("finishInstallmonitorUrls");
List<String> finishInstallmonitorList = new ArrayList<String>();
if (finishInstallmonitorUrl != null) {
for (int i = 0; i < finishInstallmonitorUrl.length(); i++) {
finishInstallmonitorList.add(finishInstallmonitorUrl.optString(i));
}
}
adBean.setFinishInstallmonitorUrls(finishInstallmonitorList);
JSONArray startdownloadmonitorUrl = root.optJSONArray("startdownloadmonitorUrls");
List<String> startInstallmonitorList = new ArrayList<String>();
if (startdownloadmonitorUrl != null) {
for (int i = 0; i < startdownloadmonitorUrl.length(); i++) {
startInstallmonitorList.add(startdownloadmonitorUrl.optString(i));
}
}
adBean.setStartdownloadmonitorUrls(startInstallmonitorList);
JSONArray finishdownloadmonitorUrl = root.optJSONArray("finishdownloadmonitorUrls");
List<String> finishdownloadmonitorlList = new ArrayList<String>();
if (finishdownloadmonitorUrl != null) {
for (int i = 0; i < finishdownloadmonitorUrl.length(); i++) {
finishdownloadmonitorlList.add(finishdownloadmonitorUrl.optString(i));
}
}
adBean.setFinishdownloadmonitorUrls(finishdownloadmonitorlList);
JSONArray activemonitorUrl = root.optJSONArray("activemonitorUrls");
List<String> activemonitorList = new ArrayList<String>();
if (activemonitorUrl != null) {
for (int i = 0; i < activemonitorUrl.length(); i++) {
activemonitorList.add(activemonitorUrl.optString(i));
}
}
adBean.setActivemonitorUrls(activemonitorList);
JSONArray dpSuccmonitorUrl = root.optJSONArray("dpSuccmonitorUrls");
List<String> dpSuccmonitorList = new ArrayList<String>();
if (dpSuccmonitorUrl != null) {
for (int i = 0; i < dpSuccmonitorUrl.length(); i++) {
dpSuccmonitorList.add(dpSuccmonitorUrl.optString(i));
}
}
adBean.setDpSuccmonitorUrls(dpSuccmonitorList);
JSONArray dpFailmonitorUrl = root.optJSONArray("dpFailmonitorUrls");
List<String> dpFailmonitorList = new ArrayList<String>();
if (dpFailmonitorUrl != null) {
for (int i = 0; i < dpFailmonitorUrl.length(); i++) {
dpFailmonitorList.add(dpFailmonitorUrl.optString(i));
}
}
adBean.setDpFailmonitorUrls(dpFailmonitorList);
} catch (JSONException e) {
e.printStackTrace();
}
return adBean;
}
} }
...@@ -7,21 +7,21 @@ import android.os.Build; ...@@ -7,21 +7,21 @@ import android.os.Build;
import android.util.AttributeSet; import android.util.AttributeSet;
import android.webkit.WebView; import android.webkit.WebView;
public class CustomWebView extends WebView { public class HcCustomWebView extends WebView {
public CustomWebView(Context context) { public HcCustomWebView(Context context) {
super(getFixedContext(context)); super(getFixedContext(context));
} }
public CustomWebView(Context context, AttributeSet attrs) { public HcCustomWebView(Context context, AttributeSet attrs) {
super(getFixedContext(context), attrs); super(getFixedContext(context), attrs);
} }
@TargetApi(Build.VERSION_CODES.LOLLIPOP) @TargetApi(Build.VERSION_CODES.LOLLIPOP)
public CustomWebView(Context context, AttributeSet attrs, int defStyleAttr) { public HcCustomWebView(Context context, AttributeSet attrs, int defStyleAttr) {
super(getFixedContext(context), attrs, defStyleAttr); super(getFixedContext(context), attrs, defStyleAttr);
} }
public CustomWebView(Context context, AttributeSet attrs, int defStyleAttr, boolean privateBrowsing) { public HcCustomWebView(Context context, AttributeSet attrs, int defStyleAttr, boolean privateBrowsing) {
super(getFixedContext(context), attrs, defStyleAttr, privateBrowsing); super(getFixedContext(context), attrs, defStyleAttr, privateBrowsing);
} }
......
package com.ym.zxhcsdk.webview; package com.ym.zxhcsdk.webview;
import android.app.Activity; import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle; import android.os.Bundle;
import android.util.Log;
import android.view.View; import android.view.View;
import android.view.WindowManager;
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 android.widget.TextView;
import com.ym.zxhcsdk.R; import com.ym.zxhcsdk.R;
public class WebActivity extends Activity { public class HcWebActivity extends Activity {
private String url; private String url;
private String title; private HcCustomWebView webView;
private CustomWebView webView;
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); //getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.activity_web); setContentView(R.layout.hc_activity_web);
url = getIntent().getStringExtra("url"); url = getIntent().getStringExtra("url");
title = getIntent().getStringExtra("title"); //title = getIntent().getStringExtra("title");
webView = findViewById(R.id.activity_webview); webView = findViewById(R.id.activity_webview);
initTitle(); initTitle();
initWebView(); initWebView();
webView.loadUrl(url); webView.loadUrl(url);
} }
private void initWebView() { private void initWebView() {
WebSettings webSettings = webView.getSettings();
webSettings.setSupportZoom(true); //支持缩放,默认为true。是下面那个的前提。
webSettings.setBuiltInZoomControls(true); //设置内置的缩放控件。若为false,则该WebView不可缩放
webSettings.setDisplayZoomControls(false); //隐藏原生的缩放控件
webSettings.setAllowFileAccess(true); //设置可以访问文件
webSettings.setJavaScriptCanOpenWindowsAutomatically(true); //支持通过JS打开新窗口
webSettings.setLoadsImagesAutomatically(true); //支持自动加载图片
webSettings.setDefaultTextEncodingName("utf-8");//设置编码格式
webView.getSettings().setUseWideViewPort(true); webView.getSettings().setUseWideViewPort(true);
webView.getSettings().setLoadWithOverviewMode(true); webView.getSettings().setLoadWithOverviewMode(true);
// webView.getSettings().setDefaultFontSize(56); // webView.getSettings().setDefaultFontSize(56);
...@@ -42,8 +55,19 @@ public class WebActivity extends Activity { ...@@ -42,8 +55,19 @@ public class WebActivity extends Activity {
webView.setWebViewClient(new WebViewClient() { webView.setWebViewClient(new WebViewClient() {
@Override @Override
public boolean shouldOverrideUrlLoading(WebView view, String url) { public boolean shouldOverrideUrlLoading(WebView view, String url) {
try {
// Uri uri = Uri.parse(url);
// Intent intent = new Intent(Intent.ACTION_VIEW, uri);
// intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
// intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
// startActivity(intent);
// Log.d("wxw","0urllll "+url);
} catch (Exception e) {
Log.d("wxw","1urllll "+url);
}
Log.d("wxw","2urllll "+url);
view.loadUrl(url); view.loadUrl(url);
return true; return false;
} }
}); });
// webView.loadDataWithBaseURL(null, url, "text/html", "utf-8", null);//解决乱码问题 // webView.loadDataWithBaseURL(null, url, "text/html", "utf-8", null);//解决乱码问题
...@@ -57,7 +81,7 @@ public class WebActivity extends Activity { ...@@ -57,7 +81,7 @@ public class WebActivity extends Activity {
finish(); finish();
} }
}); });
TextView tv_title = findViewById(R.id.tv_user_toolbar_title); //TextView tv_title = findViewById(R.id.tv_user_toolbar_title);
// tv_title.setText(title + ""); // tv_title.setText(title + "");
} }
......
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:orientation="vertical" android:orientation="vertical">
tools:context=".webview.WebActivity">
<RelativeLayout <RelativeLayout
android:id="@+id/id_rl_toolbar" android:id="@+id/id_rl_toolbar"
...@@ -32,7 +30,7 @@ ...@@ -32,7 +30,7 @@
</RelativeLayout> </RelativeLayout>
<com.ym.zxhcsdk.webview.CustomWebView <com.ym.zxhcsdk.webview.HcCustomWebView
android:id="@+id/activity_webview" android:id="@+id/activity_webview"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" /> android:layout_height="match_parent" />
......
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