Просмотр исходного кода

集成腾讯TBS浏览服务,大按钮图标大小修正,左上角返回键修正,增加启动页面。

Axion лет назад: 7
Родитель
Сommit
f406c57cb1

+ 11 - 0
app/.gitignore

@@ -1 +1,12 @@
+*.iml
+.gradle
+/local.properties
+/.idea/libraries
+/.idea/modules.xml
+/.idea/workspace.xml
+/.idea/caches
+/.idea
+.DS_Store
 /build
+/captures
+.externalNativeBuild

+ 4 - 1
app/build.gradle

@@ -9,6 +9,9 @@ android {
         versionCode 1
         versionName "1.0"
         testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
+        ndk {
+            abiFilters "armeabi", "armeabi-v7a", "x86", "mips"
+        }
     }
     lintOptions {
         checkReleaseBuilds false
@@ -66,7 +69,7 @@ android {
 }
 
 dependencies {
-    implementation fileTree(include: ['*.jar'], dir: 'libs')
+    compile fileTree(include: ['*.jar'], dir: 'libs')
     implementation 'com.android.support:appcompat-v7:27.1.1'
     //implementation 'com.android.support.constraint:constraint-Griditem_layout:1.1.2'
     implementation 'com.android.support:support-v4:27.1.1'

BIN
app/libs/tbs_sdk_thirdapp_v3.6.0.1325_43613_sharewithdownload_withoutGame_obfs_20180807_151115.jar


+ 6 - 2
app/src/main/AndroidManifest.xml

@@ -28,10 +28,14 @@
         tools:replace="icon,label,theme"
         android:theme="@style/AppTheme">
         <activity android:name=".MainActivity"
-                  android:windowSoftInputMode="stateUnchanged">
+                  android:windowSoftInputMode="stateUnchanged"
+            android:hardwareAccelerated="true"
+           />
+        <activity android:name=".SplashActivity"
+                  android:windowSoftInputMode="stateUnchanged"
+                  android:hardwareAccelerated="true">
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
-
                 <category android:name="android.intent.category.LAUNCHER" />
             </intent-filter>
         </activity>

+ 57 - 16
app/src/main/java/com/wiipu/peopleheart/MainActivity.java

@@ -3,6 +3,7 @@ package com.wiipu.peopleheart;
 
 import android.content.Context;
 import android.content.Intent;
+import android.graphics.drawable.Drawable;
 import android.os.Bundle;
 import android.support.annotation.IdRes;
 import android.support.v4.app.Fragment;
@@ -12,9 +13,11 @@ import android.util.Log;
 import android.view.KeyEvent;
 import android.view.View;
 import android.widget.FrameLayout;
+import android.widget.RadioButton;
 import android.widget.RadioGroup;
 
 import com.wiipu.commonlib.base.BaseActivity;
+import com.wiipu.commonlib.utils.CommonUtils;
 import com.wiipu.peopleheart.cases.CaseFragment;
 import com.wiipu.peopleheart.home.HomeFragment;
 import com.wiipu.peopleheart.home.HomeNewFragment;
@@ -26,7 +29,7 @@ import java.util.List;
  * 首页Activity 作为Fragment的容器
  */
 
-public class MainActivity extends BaseActivity implements RadioGroup.OnCheckedChangeListener {
+public class MainActivity extends BaseActivity implements RadioGroup.OnCheckedChangeListener ,View.OnClickListener{
 
  //   public static final int FRAGMENT_HOME = 0;
     public static final int FRAGMENT_HOME_NET = 0;
@@ -35,13 +38,15 @@ public class MainActivity extends BaseActivity implements RadioGroup.OnCheckedCh
 
     private FrameLayout mContainer;
     private RadioGroup mRgBottom;
+    private RadioButton homeBtn;
+    private RadioButton caseBtn;
+    private RadioButton infoBtn;
 
 
     private HomeNewFragment mHomeFragment;
     private CaseFragment mCaseFragment;
     private InfoFragment mInfoFragment;
-
-
+    private boolean setChecked = false;//用来区分check和再次的click
     private int mCurFragmentId = -1;
 
 
@@ -57,6 +62,21 @@ public class MainActivity extends BaseActivity implements RadioGroup.OnCheckedCh
         //底部栏
         mRgBottom = getView(R.id.rg_main_bottom);
         mRgBottom.check(R.id.tab_main_home);
+        homeBtn = getView(R.id.tab_main_home);
+        caseBtn = getView(R.id.tab_main_case);
+        infoBtn = getView(R.id.tab_main_info);
+
+        Drawable homeDrawable = getResources().getDrawable(R.drawable.tab_home);
+        homeDrawable.setBounds(0, 0, CommonUtils.dp2px(40), CommonUtils.dp2px(40));
+        homeBtn.setCompoundDrawables(null,homeDrawable,null,null);
+
+        Drawable caseDrawble = getResources().getDrawable(R.drawable.tab_case);
+        caseDrawble.setBounds(0, 0, CommonUtils.dp2px(40), CommonUtils.dp2px(40));
+        caseBtn.setCompoundDrawables(null, caseDrawble, null, null);
+
+        Drawable infoDrawble = getResources().getDrawable(R.drawable.tab_info);
+        infoDrawble.setBounds(0, 0, CommonUtils.dp2px(40), CommonUtils.dp2px(40));
+        infoBtn.setCompoundDrawables(null, infoDrawble, null, null);
 
         //主页
         setFragment(FRAGMENT_HOME_NET);
@@ -78,28 +98,23 @@ public class MainActivity extends BaseActivity implements RadioGroup.OnCheckedCh
     }
 
     @Override
-    protected void onDestroy() {
-        super.onDestroy();
-    }
-
-    @Override
     protected void initListeners() {
         mRgBottom.setOnCheckedChangeListener(this);
+        homeBtn.setOnClickListener(this);
+        infoBtn.setOnClickListener(this);
+        caseBtn.setOnClickListener(this);
+
     }
 
     @Override
     protected void initData() {
-
-
     }
 
-    @Override
-    public void onClick(View v) {
 
-    }
 
     @Override
     public void onCheckedChanged(RadioGroup radioGroup, @IdRes int i) {
+        setChecked = true;
         if (i == R.id.tab_main_home) {
             setFragment(FRAGMENT_HOME_NET);
         } else if (i == R.id.tab_main_case) {
@@ -110,7 +125,6 @@ public class MainActivity extends BaseActivity implements RadioGroup.OnCheckedCh
     }
 
 
-
     private void setFragment(int fragmentId) {
         if (mCurFragmentId != fragmentId) {
             FragmentManager fm = getSupportFragmentManager();
@@ -131,7 +145,6 @@ public class MainActivity extends BaseActivity implements RadioGroup.OnCheckedCh
             mCurFragmentId = fragmentId;
             ft.commitAllowingStateLoss();
         }
-
     }
 
 
@@ -183,7 +196,6 @@ public class MainActivity extends BaseActivity implements RadioGroup.OnCheckedCh
         context.startActivity(intent);
     }
 
-
     @Override
     public boolean onKeyDown(int keyCode, KeyEvent event) {
         if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_DOWN) {
@@ -200,4 +212,33 @@ public class MainActivity extends BaseActivity implements RadioGroup.OnCheckedCh
         }
         return super.onKeyDown(keyCode, event);
     }
+
+    @Override
+    public void onClick(View v) {
+        if (setChecked) {
+            setChecked = false;
+        } else {
+            switch (v.getId()) {
+                case R.id.tab_main_home:
+                    if (mCurFragmentId == FRAGMENT_HOME_NET && mHomeFragment != null) {
+                        mHomeFragment.onHiddenChanged(true);
+                    }
+                    break;
+                case R.id.tab_main_case:
+                    if (mCurFragmentId == FRAGMENT_CASE && mCaseFragment != null) {
+                        mCaseFragment.onHiddenChanged(true);
+                    }
+                    break;
+                case R.id.tab_main_info:
+                    if (mCurFragmentId == FRAGMENT_INFO && mInfoFragment != null) {
+                        mInfoFragment.onHiddenChanged(true);
+                    }
+                    break;
+                default:
+                    break;
+
+            }
+        }
+
+    }
 }

+ 47 - 0
app/src/main/java/com/wiipu/peopleheart/SplashActivity.java

@@ -0,0 +1,47 @@
+package com.wiipu.peopleheart;
+
+import android.content.Intent;
+import android.os.Handler;
+import android.view.View;
+
+import com.wiipu.commonlib.base.BaseActivity;
+
+
+/**
+ * 初始启动页面
+ */
+
+public class SplashActivity extends BaseActivity {
+    private Handler handler=new Handler();
+
+    @Override
+    protected int getLayoutId() {
+        return R.layout.activity_splash;
+    }
+
+    @Override
+    protected void initViews() {
+
+    }
+
+    @Override
+    protected void initListeners() {
+
+    }
+
+    @Override
+    protected void initData() {
+        handler.postDelayed(new Runnable() {
+            @Override
+            public void run() {
+                    startActivity(new Intent(SplashActivity.this,MainActivity.class));
+                finish();
+            }
+        },1500);
+    }
+
+    @Override
+    public void onClick(View v) {
+
+    }
+}

+ 19 - 0
app/src/main/java/com/wiipu/peopleheart/application/App.java

@@ -14,8 +14,11 @@ import android.support.multidex.MultiDex;
 
 import com.squareup.leakcanary.LeakCanary;
 import com.squareup.leakcanary.RefWatcher;
+import com.tencent.smtt.sdk.QbSdk;
+import com.wiipu.commonlib.utils.LogUtils;
 import com.wiipu.commonlib.utils.permission.ContextUtils;
 
+
 /**
  * Author: xxx
  * Date: 2017/10/27
@@ -40,6 +43,20 @@ public class App extends Application {
         ContextUtils.init(this);
         sContext = getApplicationContext();
 
+        QbSdk.PreInitCallback cb=new QbSdk.PreInitCallback() {
+            @Override
+            public void onCoreInitFinished() {
+
+            }
+
+            @Override
+            public void onViewInitFinished(boolean b) {
+                LogUtils.e("qbs 启动"+ b);
+            }
+        };
+        QbSdk.initX5Environment(getApplicationContext(), cb);
+
+
         //refWatcher = LeakCanary.install(this);
 
         if (LeakCanary.isInAnalyzerProcess(this)) {
@@ -48,6 +65,8 @@ public class App extends Application {
             return;
         }
 
+
+
     }
 
     //全局context

+ 15 - 6
app/src/main/java/com/wiipu/peopleheart/cases/CaseFragment.java

@@ -13,11 +13,11 @@ import android.text.TextUtils;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
-import android.webkit.ValueCallback;
-import android.webkit.WebChromeClient;
-import android.webkit.WebSettings;
-import android.webkit.WebView;
-import android.webkit.WebViewClient;
+import com.tencent.smtt.sdk.ValueCallback;
+import com.tencent.smtt.sdk.WebChromeClient;
+import com.tencent.smtt.sdk.WebSettings;
+import com.tencent.smtt.sdk.WebView;
+import com.tencent.smtt.sdk.WebViewClient;
 import android.widget.ImageView;
 import android.widget.RelativeLayout;
 import android.widget.TextView;
@@ -127,7 +127,7 @@ public class CaseFragment extends BaseMvpFragment {
         //  webSettings.setCacheMode(WebSettings.LOAD_NO_CACHE);
         //  webSettings.setDomStorageEnabled(true);
         //  webSettings.setDatabaseEnabled(true);
-        //webSettings.setUseWideViewPort(true);
+        webSettings.setUseWideViewPort(true);
 
 
 
@@ -156,6 +156,15 @@ public class CaseFragment extends BaseMvpFragment {
 
         mWebView.setWebChromeClient(new WebChromeClient(){
 
+            @Override
+            public void onProgressChanged(WebView webView, int i) {
+                super.onProgressChanged(webView, i);
+                if (webView.getUrl().equals(HttpClient.BASE_NET_URL +  "weixinMinxin/allHanding_manage.php")) {
+                    ivBackCase.setVisibility(View.INVISIBLE);
+                } else {
+                    ivBackCase.setVisibility(View.VISIBLE);
+                }
+            }
 
             // For Android < 3.0
             public void openFileChooser(ValueCallback<Uri> valueCallback) {

+ 22 - 57
app/src/main/java/com/wiipu/peopleheart/home/HomeNewFragment.java

@@ -7,15 +7,8 @@ import android.content.DialogInterface;
 import android.content.Intent;
 import android.graphics.Bitmap;
 import android.net.Uri;
-import android.net.http.SslError;
 import android.os.Build;
 import android.os.Bundle;
-import android.os.Environment;
-import android.os.Message;
-import android.provider.MediaStore;
-import android.support.annotation.Nullable;
-import android.support.v7.widget.GridLayoutManager;
-import android.support.v7.widget.RecyclerView;
 import android.text.TextUtils;
 import android.text.format.DateFormat;
 import android.util.Log;
@@ -23,59 +16,27 @@ import android.view.KeyEvent;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
-import android.webkit.ClientCertRequest;
-import android.webkit.ConsoleMessage;
-import android.webkit.GeolocationPermissions;
-import android.webkit.HttpAuthHandler;
-import android.webkit.JsPromptResult;
-import android.webkit.JsResult;
-import android.webkit.PermissionRequest;
-import android.webkit.RenderProcessGoneDetail;
-import android.webkit.SafeBrowsingResponse;
-import android.webkit.SslErrorHandler;
-import android.webkit.ValueCallback;
-import android.webkit.WebChromeClient;
-import android.webkit.WebResourceError;
-import android.webkit.WebResourceRequest;
-import android.webkit.WebResourceResponse;
-import android.webkit.WebSettings;
-import android.webkit.WebStorage;
-import android.webkit.WebView;
-import android.webkit.WebViewClient;
-import android.widget.Button;
+
+import com.tencent.smtt.sdk.ValueCallback;
+import com.tencent.smtt.sdk.WebChromeClient;
+import com.tencent.smtt.sdk.WebSettings;
+import com.tencent.smtt.sdk.WebView;
+import com.tencent.smtt.sdk.WebViewClient;
+
+
 import android.widget.ImageView;
-import android.widget.LinearLayout;
-import android.widget.RelativeLayout;
 import android.widget.TextView;
-import android.widget.Toast;
 
-import com.bigkoo.convenientbanner.ConvenientBanner;
-import com.bigkoo.convenientbanner.holder.CBViewHolderCreator;
-import com.bigkoo.convenientbanner.listener.OnItemClickListener;
 import com.lwkandroid.imagepicker.ImagePicker;
 import com.lwkandroid.imagepicker.data.ImageBean;
 import com.lwkandroid.imagepicker.data.ImagePickType;
-import com.wiipu.commonlib.base.BaseAdapter;
 import com.wiipu.commonlib.base.BaseMvpFragment;
 import com.wiipu.commonlib.net.HttpClient;
 import com.wiipu.commonlib.utils.image.GlideImgLoader;
 import com.wiipu.peopleheart.R;
-import com.wiipu.peopleheart.home.acticity.commonActivity;
-import com.wiipu.peopleheart.home.acticity.homeNewsDetailActivity;
-import com.wiipu.peopleheart.home.adapter.homeRcylerApdater;
-import com.wiipu.peopleheart.home.contract.HomeContract;
-import com.wiipu.peopleheart.home.presenter.HomePresenter;
-import com.wiipu.peopleheart.home.response.homeNewsResponse;
-import com.wiipu.peopleheart.home.response.topNewsResponse;
-import com.wiipu.peopleheart.widget.ClearEditText;
-import com.wiipu.peopleheart.widget.convenientBanner.GlideHolderView;
 
 import java.io.File;
-import java.util.ArrayList;
-import java.util.Calendar;
 import java.util.List;
-import java.util.Locale;
-
 import butterknife.BindView;
 import butterknife.ButterKnife;
 import butterknife.OnClick;
@@ -104,14 +65,12 @@ public class HomeNewFragment extends BaseMvpFragment{
 
     @Override
     protected void attach() {
-
     }
 
     @Override
     protected void detach() {
 
     }
-
     @Override
     public void onHiddenChanged(boolean hidden) {
         super.onHiddenChanged(hidden);
@@ -139,9 +98,7 @@ public class HomeNewFragment extends BaseMvpFragment{
       //  webSettings.setCacheMode(WebSettings.LOAD_NO_CACHE);
       //  webSettings.setDomStorageEnabled(true);
       //  webSettings.setDatabaseEnabled(true);
-       // webSettings.setUseWideViewPort(true);
-
-
+        webSettings.setUseWideViewPort(true);
 
         //加载需要显示的网页
         mWebView.loadUrl(HttpClient.BASE_NET_URL + "weixinMinxin/app_index.php");
@@ -149,12 +106,12 @@ public class HomeNewFragment extends BaseMvpFragment{
         //当用户点击了你的WebView中的一个链接,默认的行为是Android启动一个处理URL的应用,通常,默认的浏览器打开并下载目标URL。
         // 可以在WebView中覆盖这一行为,使得连接仍在WebView中打开。
        // mWebView.setWebViewClient(new WebViewClient());
-        mWebView.setWebViewClient(new WebViewClient() {
 
 
+        mWebView.setWebViewClient(new WebViewClient() {
             @Override
             public void onPageFinished(WebView view, String url) {
-
+                Log.d(TAG, "onPageFinished: " + url);
                 super.onPageFinished(view, url);
                 String title = view.getTitle();
                 if (!TextUtils.isEmpty(title)) {
@@ -167,7 +124,17 @@ public class HomeNewFragment extends BaseMvpFragment{
         });
 
         mWebView.setWebChromeClient(new WebChromeClient(){
-            
+
+            @Override
+            public void onProgressChanged(WebView webView, int i) {
+                super.onProgressChanged(webView, i);
+                if (webView.getUrl().equals(HttpClient.BASE_NET_URL + "weixinMinxin/app_index.php")) {
+                    ivBackCase.setVisibility(View.INVISIBLE);
+                } else {
+                    ivBackCase.setVisibility(View.VISIBLE);
+                }
+            }
+
             // For Android < 3.0
             public void openFileChooser(ValueCallback<Uri> valueCallback) {
                 uploadMessage = valueCallback;
@@ -343,6 +310,4 @@ public class HomeNewFragment extends BaseMvpFragment{
         onBackPressed();
     }
 
-
-
 }

+ 14 - 5
app/src/main/java/com/wiipu/peopleheart/info/InfoFragment.java

@@ -13,11 +13,11 @@ import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
-import android.webkit.ValueCallback;
-import android.webkit.WebChromeClient;
-import android.webkit.WebSettings;
-import android.webkit.WebView;
-import android.webkit.WebViewClient;
+import com.tencent.smtt.sdk.ValueCallback;
+import com.tencent.smtt.sdk.WebChromeClient;
+import com.tencent.smtt.sdk.WebSettings;
+import com.tencent.smtt.sdk.WebView;
+import com.tencent.smtt.sdk.WebViewClient;
 import android.widget.ImageView;
 import android.widget.RelativeLayout;
 import android.widget.TextView;
@@ -125,6 +125,15 @@ public class InfoFragment extends BaseMvpFragment {
 
         mWebView.setWebChromeClient(new WebChromeClient(){
 
+            @Override
+            public void onProgressChanged(WebView webView, int i) {
+                super.onProgressChanged(webView, i);
+                if (webView.getUrl().equals(HttpClient.BASE_NET_URL +  "weixinMinxin/policyNews.php")) {
+                    ivBackInfo.setVisibility(View.INVISIBLE);
+                } else {
+                    ivBackInfo.setVisibility(View.VISIBLE);
+                }
+            }
 
             // For Android < 3.0
             public void openFileChooser(ValueCallback<Uri> valueCallback) {

BIN
app/src/main/jniLibs/armeabi/liblbs.so


BIN
app/src/main/res/drawable/splash_png.png


+ 1 - 0
app/src/main/res/layout/activity_main.xml

@@ -40,6 +40,7 @@
                 android:drawablePadding="@dimen/margin2dp"
                 android:gravity="center"
                 android:text="@string/tv_main"
+                android:clickable="true"
                 android:textColor="@drawable/color_text_bottom_tab" />
 
             <RadioButton

+ 16 - 0
app/src/main/res/layout/activity_splash.xml

@@ -0,0 +1,16 @@
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:orientation="vertical">
+
+    <ImageView
+        android:id="@+id/iv_splash"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:layout_alignParentLeft="true"
+        android:layout_alignParentStart="true"
+        android:layout_alignParentTop="true"
+        android:scaleType="centerCrop"
+        android:src="@drawable/splash_png" />
+
+</FrameLayout>

+ 1 - 1
app/src/main/res/layout/fragment_case.xml

@@ -32,7 +32,7 @@
 
     </RelativeLayout>
 
-    <WebView
+    <com.tencent.smtt.sdk.WebView
         android:layout_marginTop="@dimen/margin1dp"
         android:id="@+id/wv_case"
         android:layout_width="match_parent"

+ 1 - 1
app/src/main/res/layout/fragment_home_net.xml

@@ -32,7 +32,7 @@
 
     </RelativeLayout>
 
-    <WebView
+    <com.tencent.smtt.sdk.WebView
         android:layout_marginTop="@dimen/margin1dp"
         android:id="@+id/wv_home_net"
         android:layout_width="match_parent"

+ 1 - 1
app/src/main/res/layout/fragment_info.xml

@@ -32,7 +32,7 @@
 
     </RelativeLayout>
 
-    <WebView
+    <com.tencent.smtt.sdk.WebView
         android:layout_marginTop="@dimen/margin1dp"
         android:id="@+id/wv_info"
         android:layout_width="match_parent"