Pārlūkot izejas kodu

集成tbs。目前没有进行64位手机适配。

Merge branch 'feature_arison' of https://gitlab.com/Arisono/SkWeiChat-Baidu into feature

# Conflicts:
#	WeiChat/version.properties
#	app_modular/appworks/src/main/java/com/uas/appworks/CRM/erp/activity/DeviceDataFormAddActivity.java
Arison 8 gadi atpakaļ
vecāks
revīzija
8a0b42551f
34 mainītis faili ar 500 papildinājumiem un 221 dzēšanām
  1. 6 58
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/me/MeFragment.java
  2. 5 5
      WeiChat/version.properties
  3. 4 1
      app_core/common/src/main/java/com/core/app/MyApplication.java
  4. 0 26
      app_core/network/src/androidTest/java/base/android/com/network/ExampleInstrumentedTest.java
  5. 0 26
      app_modular/appbooking/src/androidTest/java/base/android/com/appbooking/ExampleInstrumentedTest.java
  6. 1 1
      app_modular/appme/build.gradle
  7. 11 19
      app_modular/appme/src/main/java/com/uas/appme/settings/activity/AboutActivity.java
  8. 1 3
      app_modular/apputils/build.gradle
  9. 9 8
      app_modular/apputils/src/main/AndroidManifest.xml
  10. 116 72
      app_modular/apputils/src/main/java/com/modular/apputils/activity/SimpleWebActivity.java
  11. 3 2
      app_modular/apputils/src/main/res/layout/activity_simple_web.xml
  12. 1 0
      app_third/librarytbs/.gitignore
  13. 24 0
      app_third/librarytbs/build.gradle
  14. 25 0
      app_third/librarytbs/proguard-rules.pro
  15. 25 0
      app_third/librarytbs/src/main/AndroidManifest.xml
  16. 200 0
      app_third/librarytbs/src/main/java/com/yifeng/sample/tbs/TBSFilesActivity.java
  17. BIN
      app_third/librarytbs/src/main/jniLibs/armeabi/liblbs.so
  18. 18 0
      app_third/librarytbs/src/main/res/layout/activity_index.xml
  19. 11 0
      app_third/librarytbs/src/main/res/layout/activity_tbsfile.xml
  20. BIN
      app_third/librarytbs/src/main/res/mipmap-hdpi/ic_launcher.png
  21. BIN
      app_third/librarytbs/src/main/res/mipmap-hdpi/ic_launcher_round.png
  22. BIN
      app_third/librarytbs/src/main/res/mipmap-mdpi/ic_launcher.png
  23. BIN
      app_third/librarytbs/src/main/res/mipmap-mdpi/ic_launcher_round.png
  24. BIN
      app_third/librarytbs/src/main/res/mipmap-xhdpi/ic_launcher.png
  25. BIN
      app_third/librarytbs/src/main/res/mipmap-xhdpi/ic_launcher_round.png
  26. BIN
      app_third/librarytbs/src/main/res/mipmap-xxhdpi/ic_launcher.png
  27. BIN
      app_third/librarytbs/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
  28. BIN
      app_third/librarytbs/src/main/res/mipmap-xxxhdpi/ic_launcher.png
  29. BIN
      app_third/librarytbs/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
  30. 6 0
      app_third/librarytbs/src/main/res/values/colors.xml
  31. 3 0
      app_third/librarytbs/src/main/res/values/strings.xml
  32. 11 0
      app_third/librarytbs/src/main/res/values/styles.xml
  33. 18 0
      app_third/librarytbs/src/test/java/com/yifeng/sample/tbs/ExampleUnitTest.java
  34. 2 0
      settings.gradle

+ 6 - 58
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/me/MeFragment.java

@@ -36,7 +36,6 @@ import com.core.app.MyApplication;
 import com.core.broadcast.MsgBroadcast;
 import com.core.net.http.ViewUtil;
 import com.core.utils.FlexJsonUtil;
-import com.core.utils.NotificationManage;
 import com.core.utils.ToastUtil;
 import com.core.utils.helper.AvatarHelper;
 import com.lidroid.xutils.view.annotation.ViewInject;
@@ -262,24 +261,11 @@ public class MeFragment extends EasyFragment implements View.OnClickListener {
         }
     }
 
-    //    private String getImageUrl(int id) {
-//        return CommonUtil.getAppBaseUrl(ct) + "common/downloadbyId.action?id=" + id + "&sessionId=" +
-//                CommonUtil.getSharedPreferences(ct, "sessionId") +
-//                "&sessionUser=" + CommonUtil.getSharedPreferences(ct, "erp_username") +
-//                "&master=" + CommonUtil.getSharedPreferences(ct, "erp_master");
-//    }
+
     private static final String TAG = "MeFragment";
 
     private void initView() {
-        LogUtil.d(TAG, "initView()");
         ct = getActivity();
-
-//       new Thread(new Runnable() {
-//           @Override
-//           public void run() {
-//               ContactsUtils.testAddContact();
-//           }
-//       }).start();
         findViewById(R.id.my_data_rl).setOnClickListener(this);
         findViewById(R.id.my_friend_rl).setOnClickListener(this);
         findViewById(R.id.my_space_rl).setOnClickListener(this);
@@ -365,8 +351,10 @@ public class MeFragment extends EasyFragment implements View.OnClickListener {
         picture_selector_rl.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
-                NotificationManage notificationManage = new NotificationManage();
-                notificationManage.sendNotification(MyApplication.getInstance(), "UU互联通知测试消息!", MainActivity.class);
+              startActivity(new Intent("com.modular.apputils.activity.SimpleWebActivity")
+             // .putExtra("filepath", FileUtils.getSDRoot()+"/uu/HTTP权威指南.pdf")
+              .putExtra("url","https://218.17.158.219:9443/uas_dev/mobile/message/getDetail.action?id=1393204")
+              );
             }
         });
         picture_selector_rl.setOnLongClickListener(new View.OnLongClickListener() {
@@ -434,10 +422,6 @@ public class MeFragment extends EasyFragment implements View.OnClickListener {
                     changeMaster();
                 }
                 break;
-            case R.id.my_data_rl:// 我的资料
-                //作废
-                //  startActivityForResult(new Intent(getActivity(), BasicInfoEditActivity.class), 1);
-                break;
             case my_friend_rl://我的朋友圈
                 setChangerRemain(true);
                 MainActivity.isUnReadWork = false;
@@ -453,43 +437,7 @@ public class MeFragment extends EasyFragment implements View.OnClickListener {
                 tv_oa_desc.setVisibility(View.GONE);
                 iv_desc_oa.setVisibility(View.GONE);
                 break;
-//            case R.id.app_scan_code_rl://APP二维码
-//                ImageView imageView = new ImageView(getActivity());
-//                imageView.setImageResource(R.drawable.ic_uu_scan_code);
-//                MaterialDialog materialDialog = new MaterialDialog.Builder(getActivity())
-//                        .title("UU互联最新版二维码\n长按可识别")
-//                        .customView(imageView, false)
-//                        .titleGravity(GravityEnum.CENTER)
-//                        .show();
-//                final Bitmap bitmap = ((BitmapDrawable) imageView.getDrawable()).getBitmap();
-//                imageView.setOnLongClickListener(new View.OnLongClickListener() {
-//                    @Override
-//                    public boolean onLongClick(View v) {
-//                        CodeUtils.analyzeBitmap(bitmap, new CodeUtils.AnalyzeCallback() {
-//                            @Override
-//                            public void onAnalyzeSuccess(Bitmap mBitmap, String result) {
-//                                Intent intent = new Intent();
-//                                intent.setClass(getActivity(), CommonWebviewActivity.class);
-//                                intent.putExtra("scan_url", result);
-//                                Log.d("image_url", result);
-//                                startActivity(intent);
-//                            }
-//
-//                            @Override
-//                            public void onAnalyzeFailed() {
-//
-//                            }
-//                        });
-//                        return false;
-//                    }
-//                });
-//                break;
-//            case R.id.app_drafts_rl:
-//                ToastUtil.showToast(getActivity(), "新功能未上线!请期待!");
-//                break;
-//            case R.id.app_friend_rl:
-//
-//                break;
+
         }
     }
 

+ 5 - 5
WeiChat/version.properties

@@ -1,5 +1,5 @@
-#Fri Jan 12 15:57:09 CST 2018
-debugName=60
-versionName=611
-debugCode=60
-versionCode=150
+#Wed Jan 17 09:59:36 CST 2018
+debugName=127
+versionName=613
+debugCode=127
+versionCode=152

+ 4 - 1
app_core/common/src/main/java/com/core/app/MyApplication.java

@@ -115,21 +115,24 @@ public class MyApplication extends BaseApplication {
         // 初始化图片加载
         initImageLoader();
         //搜集本地tbs内核信息并上报服务器,服务器返回结果决定使用哪个内核。
+
         QbSdk.PreInitCallback cb = new QbSdk.PreInitCallback() {
 
             @Override
             public void onViewInitFinished(boolean arg0) {
+                // TODO Auto-generated method stub
                 //x5內核初始化完成的回调,为true表示x5内核加载成功,否则表示x5内核加载失败,会自动切换到系统内核。
                 Log.d("app", " onViewInitFinished is " + arg0);
             }
 
             @Override
             public void onCoreInitFinished() {
-     
+                // TODO Auto-generated method stub
             }
         };
         //x5内核初始化接口
         QbSdk.initX5Environment(getApplicationContext(),  cb);
+  
         // 初始化网络监听
         mNetWorkObservable = new NetWorkObservable(this);
 

+ 0 - 26
app_core/network/src/androidTest/java/base/android/com/network/ExampleInstrumentedTest.java

@@ -1,26 +0,0 @@
-package base.android.com.network;
-
-import android.content.Context;
-import android.support.test.InstrumentationRegistry;
-import android.support.test.runner.AndroidJUnit4;
-
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-import static org.junit.Assert.*;
-
-/**
- * Instrumentation test, which will execute on an Android device.
- *
- * @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
- */
-@RunWith(AndroidJUnit4.class)
-public class ExampleInstrumentedTest {
-    @Test
-    public void useAppContext() throws Exception {
-        // Context of the app under test.
-        Context appContext = InstrumentationRegistry.getTargetContext();
-
-        assertEquals("base.android.com.network.test", appContext.getPackageName());
-    }
-}

+ 0 - 26
app_modular/appbooking/src/androidTest/java/base/android/com/appbooking/ExampleInstrumentedTest.java

@@ -1,26 +0,0 @@
-package base.android.com.appbooking;
-
-import android.content.Context;
-import android.support.test.InstrumentationRegistry;
-import android.support.test.runner.AndroidJUnit4;
-
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-import static org.junit.Assert.*;
-
-/**
- * Instrumentation test, which will execute on an Android device.
- *
- * @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
- */
-@RunWith(AndroidJUnit4.class)
-public class ExampleInstrumentedTest {
-    @Test
-    public void useAppContext() throws Exception {
-        // Context of the app under test.
-        Context appContext = InstrumentationRegistry.getTargetContext();
-
-        assertEquals("base.android.com.appbooking.test", appContext.getPackageName());
-    }
-}

+ 1 - 1
app_modular/appme/build.gradle

@@ -25,5 +25,5 @@ dependencies {
     compile project(':appworks')
     compile project(':applogin')
     compile project(':appcontact')
-    compile 'com.android.support.constraint:constraint-layout:1.0.2'
+
 }

+ 11 - 19
app_modular/appme/src/main/java/com/uas/appme/settings/activity/AboutActivity.java

@@ -22,7 +22,6 @@ import com.core.utils.IntentUtils;
 import com.core.widget.view.Activity.CommonWebviewActivity;
 import com.lidroid.xutils.ViewUtils;
 import com.uas.appme.R;
-import com.umeng.socialize.Config;
 import com.umeng.socialize.ShareAction;
 import com.umeng.socialize.UMShareAPI;
 import com.umeng.socialize.bean.SHARE_MEDIA;
@@ -31,7 +30,7 @@ import com.uuzuche.lib_zxing.activity.CodeUtils;
 
 public class AboutActivity extends BaseActivity implements View.OnClickListener {
 
-    private RelativeLayout me_name;//评价
+    private RelativeLayout me_name;
     private RelativeLayout me_function;
     private RelativeLayout me_QRcode;
 
@@ -50,13 +49,6 @@ public class AboutActivity extends BaseActivity implements View.OnClickListener
         me_name.setOnClickListener(this);
         me_function.setOnClickListener(this);
         me_QRcode.setOnClickListener(this);
-
-      
-//		UmengTool.getSignature(activity);
-//		UmengTool.checkSina(activity);
-//		UmengTool.getREDICRECT_URL(activity);
-//		UmengTool.checkWx(activity);
-//		UmengTool.checkSina(activity);
     }
 
     private void initView() {
@@ -73,7 +65,7 @@ public class AboutActivity extends BaseActivity implements View.OnClickListener
 
     @Override
     public boolean onOptionsItemSelected(MenuItem item) {
-        if (item.getItemId() == R.id.app_about){
+        if (item.getItemId() == R.id.app_about) {
             try {
                 new ShareAction(activity).setDisplayList(
                         SHARE_MEDIA.SINA,
@@ -84,15 +76,15 @@ public class AboutActivity extends BaseActivity implements View.OnClickListener
                         SHARE_MEDIA.WEIXIN_FAVORITE,
                         SHARE_MEDIA.MORE)
                         .withTitle("UU互联")
-                        .withText("UU互联 Android客户端"+ SystemUtil.getVersionName(mContext))
+                        .withText("UU互联 Android客户端" + SystemUtil.getVersionName(mContext))
                         .withMedia(new UMImage(activity, "http://img.my.csdn.net/uploads/201609/30/1475204542_1365.png"))
                         .withTargetUrl("http://www.usoftchina.com/usoft/uas_client.html")
                         .setCallback(CommonUtil.umShareListener)
                         .open();
             } catch (Exception e) {
-                
+
             }
-        }else if (item.getItemId() == android.R.id.home){
+        } else if (item.getItemId() == android.R.id.home) {
 
             onBackPressed();
         }
@@ -102,7 +94,7 @@ public class AboutActivity extends BaseActivity implements View.OnClickListener
 
     @Override
     public void onClick(View v) {
-        if (v.getId() ==  R.id.me_name){
+        if (v.getId() == R.id.me_name) {
             try {
                 Uri uri = Uri.parse("market://details?id=" + getPackageName());
                 Intent intent = new Intent(Intent.ACTION_VIEW, uri);
@@ -111,11 +103,12 @@ public class AboutActivity extends BaseActivity implements View.OnClickListener
             } catch (Exception e) {
                 IntentUtils.webLinks(ct, "http://apk.91.com/Soft/Android/com.xzjmyk.pm.activity-54.html", "UU互联");
             }
-        }else if (v.getId() ==  R.id.me_function){
-            String url="";
-            url=  "http://113.105.74.140:8080/new/";
+        } else if (v.getId() == R.id.me_function) {
+            String url = "";
+            url = "http://113.105.74.140:8080/new/";
             IntentUtils.webLinks(ct, url, getString(R.string.about_function));
-        }else if (v.getId() ==  R.id.me_QRcode){
+
+        } else if (v.getId() == R.id.me_QRcode) {
             ImageView imageView = new ImageView(ct);
             imageView.setImageResource(R.drawable.ic_uu_scan_code);
             new MaterialDialog.Builder(ct)
@@ -148,7 +141,6 @@ public class AboutActivity extends BaseActivity implements View.OnClickListener
         }
     }
 
- 
 
     @Override
     protected void onActivityResult(int requestCode, int resultCode, Intent data) {

+ 1 - 3
app_modular/apputils/build.gradle

@@ -20,10 +20,8 @@ android {
 
 dependencies {
     compile fileTree(include: ['*.jar'], dir: 'libs')
-    testCompile deps.junit
-    compile deps.appcompatV7
     compile project(':common')
     compile project(':network')
     compile project(':imageload')
-    compile 'com.android.support.constraint:constraint-layout:+'
+
 }

+ 9 - 8
app_modular/apputils/src/main/AndroidManifest.xml

@@ -42,18 +42,19 @@
                 <category android:name="android.intent.category.DEFAULT" />
             </intent-filter>
         </activity>
-        
-        
         <activity android:name=".IntentUrlActivity">
             <intent-filter>
-                <action android:name="android.intent.action.VIEW"></action>
-                <category android:name="android.intent.category.DEFAULT"></category>
-                <category android:name="android.intent.category.BROWSABLE"></category>
-                <data android:scheme="app"
-                    android:host="usoftchina.com">
-                </data>
+                <action android:name="android.intent.action.VIEW" />
+
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.BROWSABLE" />
+
+                <data
+                    android:host="usoftchina.com"
+                    android:scheme="app"></data>
             </intent-filter>
         </activity>
+
     </application>
 
 </manifest>

+ 116 - 72
app_modular/apputils/src/main/java/com/modular/apputils/activity/SimpleWebActivity.java

@@ -2,68 +2,89 @@ package com.modular.apputils.activity;
 
 import android.annotation.SuppressLint;
 import android.content.ActivityNotFoundException;
-import android.content.Context;
 import android.content.Intent;
 import android.net.Uri;
 import android.os.Build;
 import android.os.Bundle;
+import android.os.Environment;
+import android.text.TextUtils;
 import android.view.KeyEvent;
+import android.widget.RelativeLayout;
 
 import com.alibaba.fastjson.JSON;
 import com.common.LogUtil;
 import com.core.app.MyApplication;
-import com.core.base.BaseActivity;
+import com.core.base.OABaseActivity;
 import com.core.utils.CommonUtil;
+import com.core.utils.ToastUtil;
 import com.me.network.app.http.HttpClient;
 import com.me.network.app.http.Method;
 import com.me.network.app.http.rx.ResultListener;
 import com.me.network.app.http.rx.ResultSubscriber;
 import com.modular.apputils.R;
 import com.tencent.smtt.sdk.CookieManager;
-import com.tencent.smtt.sdk.CookieSyncManager;
+import com.tencent.smtt.sdk.TbsReaderView;
+import com.tencent.smtt.sdk.TbsReaderView.ReaderCallback;
 import com.tencent.smtt.sdk.WebSettings;
 import com.tencent.smtt.sdk.WebView;
 import com.tencent.smtt.sdk.WebViewClient;
 
-public class SimpleWebActivity extends BaseActivity {
-private static final String TAG = "SimpleWebActivity";
-    WebView webView;
+import java.io.File;
+
+public class SimpleWebActivity extends OABaseActivity implements ReaderCallback {
+    private static final String TAG = "SimpleWebActivity";
+    private WebView webView;
+    private TbsReaderView mTbsReaderView;
+    private String filepath;
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.activity_simple_web);
-         getSupportActionBar().hide();
-        webView= findViewById(R.id.mSimpleWebView);
+      
+        webView = findViewById(R.id.mSimpleWebView);
+        mTbsReaderView = new TbsReaderView(this, this);
+        RelativeLayout rootRl =  findViewById(R.id.rl_root);
+        rootRl.addView(mTbsReaderView, new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.MATCH_PARENT));
         webView.getSettings().setJavaScriptEnabled(true);
         webView.getSettings().setAllowFileAccess(true);
         webView.getSettings().setDomStorageEnabled(true);
         webView.getSettings().setDatabaseEnabled(true);
         webView.getSettings().setAppCacheEnabled(true);
         webView.getSettings().setCacheMode(WebSettings.LOAD_DEFAULT);
-        
-        
-        
+
+
         Intent intent = getIntent();
-        String  url = intent.getStringExtra("url");
+        String url = intent.getStringExtra("url");
         getSupportActionBar().setTitle(intent.getStringExtra("p"));
-        LogUtil.d(TAG,"url:"+url+" title:"+intent.getStringExtra("p"));
-        if ("http://mall.ubtob.com".equals(url)){
+        filepath = intent.getStringExtra("filepath");
+        if (!TextUtils.isEmpty(filepath)) {
+            if (isLocalExist()) {
+                openFileByTBS();
+            }
+            return;
+        }
+
+        if ("http://mall.ubtob.com".equals(url)) {
             initBusinessToken();
         }
-       
+
         setThirdPartyCookiesEnabled(true);
-        webView.setWebViewClient(new WebViewClient(){
+        webView.setWebViewClient(new WebViewClient() {
             public boolean shouldOverrideUrlLoading(WebView view, String url) {
-                LogUtil.d(TAG,"转发url:"+url);
+                LogUtil.d(TAG,"url="+url);
                 if (url.startsWith(WebView.SCHEME_TEL) || url.startsWith("sms:") || url.startsWith(WebView.SCHEME_MAILTO)) {
                     try {
                         Intent intent = new Intent(Intent.ACTION_VIEW);
                         intent.setData(Uri.parse(url));
-                        mContext.startActivity(intent);
+                        startActivity(intent);
                     } catch (ActivityNotFoundException ignored) {
                     }
                     return true;
+                }else if(url.contains("jsps/oa/persontask/workDaily/addWorkDaily.jsp")){
+                    LogUtil.d(TAG,"event url="+url);
+                    ToastUtil.showToast(mContext,"调转日报界面");
+                    return true;
                 }
                 webView.loadUrl(url);
                 return true;
@@ -73,71 +94,82 @@ private static final String TAG = "SimpleWebActivity";
                 super.onPageFinished(view, url);
             }
         });
-         webView.loadUrl(url);
-//       String filePath=FileUtils.getSDRoot()+"/uu/HTTP权威指南.pdf";
-//       LogUtil.d(TAG,filePath);
-//        ValueCallback<String> callback=new ValueCallback<String>() {
-//            @Override
-//            public void onReceiveValue(String s) {
-//                LogUtil.d(TAG,"result:"+s);
-//            }
-//        };
-//        HashMap<String,String> params=new HashMap<>();
-//        params.put("style","1");
-//      int code=  QbSdk.openFileReader(mContext, filePath, params,callback);
-//        
-//      LogUtil.d(TAG,"code:"+code);
+        webView.loadUrl(url);
+
     }
 
+    private boolean isLocalExist() {
+        return getLocalFile().exists();
+    }
 
-    //企业uu为空,则取附近账套和子帐套的
-    public void initBusinessToken(){
-          LogUtil.d(TAG, CommonUtil.getSharedPreferences(this,"erp_uu"));
-       
-          HttpClient httpClient=new HttpClient.Builder("https://account.ubtob.com/").build();
-                 httpClient.Api().send(new HttpClient.Builder()
-                 .url("api/user/getToken")
-                         .add("appId","b2b")
-                         .add("spaceDialectUID",CommonUtil.getSharedPreferences(this,"erp_uu"))
-                         .add("uid", MyApplication.getInstance().mLoginUser.getTelephone())
-                 .method(Method.GET)
-                 .build(),new ResultSubscriber<Object>(new ResultListener<Object>() {
-          
-                     @Override
-                     public void onResponse(Object o) {
-                         try {
-                             LogUtil.d(TAG,o.toString());
-                             String token= JSON.parseObject(o.toString()).getString("content");
-                             String url="https://account.ubtob.com/sso/login/proxy?appId=b2b&returnURL=https://www.usoftmall.com&token="+token+"&baseURL=https://www.usoftmall.com/login/other&isLoginAll=false";
-                          //   webView.loadUrl(url);
-                         } catch (Exception e) {
-                             e.printStackTrace();
-                         }
-                     }
-                 }));
+    private File getLocalFile() {
+        return new File(filepath);
+    }
+    
+    private void openFileByTBS() {
+        String fileName = parseFormat(filepath);
+        Bundle bundle = new Bundle();
+        bundle.putString("filePath", filepath);
+        bundle.putString("tempPath", Environment.getExternalStorageDirectory().getPath());
+        boolean result = mTbsReaderView.preOpen(fileName, false);
+        if (result) {
+            mTbsReaderView.openFile(bundle);
+        }
+        
     }
 
-    public static void synCookies(Context context, String url,String cookies) {
-        CookieSyncManager.createInstance(context);
-        CookieManager cookieManager = CookieManager.getInstance();
-        cookieManager.setAcceptCookie(true);
-        cookieManager.removeSessionCookie();//移除  
-        LogUtil.d(TAG, cookies);
-        cookieManager.setCookie(url, cookies);
-        CookieSyncManager.getInstance().sync();
+    private String parseFormat(String fileName) {
+        return fileName.substring(fileName.lastIndexOf(".") + 1);
     }
 
 
-    @SuppressWarnings("static-method")
-    public void setCookiesEnabled(final boolean enabled) {
-        CookieManager.getInstance().setAcceptCookie(enabled);
+    //企业uu为空,则取附近账套和子帐套的
+    public void initBusinessToken() {
+        LogUtil.d(TAG, CommonUtil.getSharedPreferences(this, "erp_uu"));
+        HttpClient httpClient = new HttpClient.Builder("https://account.ubtob.com/").build();
+        httpClient.Api().send(new HttpClient.Builder()
+                .url("api/user/getToken")
+                .add("appId", "b2b")
+                .add("spaceDialectUID", CommonUtil.getSharedPreferences(this, "erp_uu"))
+                .add("uid", MyApplication.getInstance().mLoginUser.getTelephone())
+                .method(Method.GET)
+                .build(), new ResultSubscriber<Object>(new ResultListener<Object>() {
+
+            @Override
+            public void onResponse(Object o) {
+                try {
+                    LogUtil.d(TAG, o.toString());
+                    String token = JSON.parseObject(o.toString()).getString("content");
+                    String url = "https://account.ubtob.com/sso/login/proxy?appId=b2b&returnURL=https://www.usoftmall.com&token=" + token + "&baseURL=https://www.usoftmall.com/login/other&isLoginAll=false";
+                    webView.loadUrl(url);
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+            }
+        }));
     }
 
+//    public static void synCookies(Context context, String url, String cookies) {
+//        CookieSyncManager.createInstance(context);
+//        CookieManager cookieManager = CookieManager.getInstance();
+//        cookieManager.setAcceptCookie(true);
+//        cookieManager.removeSessionCookie();//移除  
+//        LogUtil.d(TAG, cookies);
+//        cookieManager.setCookie(url, cookies);
+//        CookieSyncManager.getInstance().sync();
+//    }
+
+
+    @SuppressWarnings("static-method")
+//    public void setCookiesEnabled(final boolean enabled) {
+//        CookieManager.getInstance().setAcceptCookie(enabled);
+//    }
+
     @SuppressLint("NewApi")
     public void setThirdPartyCookiesEnabled(final boolean enabled) {
         if (Build.VERSION.SDK_INT >= 21) {
             CookieManager.getInstance().setAcceptThirdPartyCookies(webView, enabled);
-        }else {
+        } else {
             CookieManager.getInstance().setAcceptCookie(true);
         }
     }
@@ -145,12 +177,18 @@ private static final String TAG = "SimpleWebActivity";
 
     @Override
     public void onBackPressed() {
-        startActivity( new Intent("com.modular.main.MainActivity"));
-        overridePendingTransition(com.core.app.R.anim.anim_activity_back_in,com.core.app.R.anim.anim_activity_back_out);
-        //overridePendingTransition(R.anim.anim_activity_back_in,R.anim.anim_activity_back_out);
+        startActivity(new Intent("com.modular.main.MainActivity"));
+        finish();
+        overridePendingTransition(com.core.app.R.anim.anim_activity_back_in, com.core.app.R.anim.anim_activity_back_out);
     }
 
     @Override
+    protected void onDestroy() {
+        super.onDestroy();
+        mTbsReaderView.onStop();
+    }
+
+        @Override
     public boolean onKeyDown(int keyCode, KeyEvent event) {
         if (keyCode == KeyEvent.KEYCODE_BACK && webView.canGoBack()) {
             webView.goBack();// 返回前一个页面
@@ -158,4 +196,10 @@ private static final String TAG = "SimpleWebActivity";
         }
         return super.onKeyDown(keyCode, event);
     }
+
+
+    @Override
+    public void onCallBackAction(Integer integer, Object o, Object o1) {
+        
+    }
 }

+ 3 - 2
app_modular/apputils/src/main/res/layout/activity_simple_web.xml

@@ -1,7 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<RelativeLayout 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"
+    android:id="@+id/rl_root"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     tools:context="com.modular.apputils.activity.SimpleWebActivity">
@@ -10,4 +11,4 @@
         android:layout_width="match_parent"
         android:layout_height="match_parent"
         android:background="@color/linen" />
-</LinearLayout>
+</RelativeLayout>

+ 1 - 0
app_third/librarytbs/.gitignore

@@ -0,0 +1 @@
+/build

+ 24 - 0
app_third/librarytbs/build.gradle

@@ -0,0 +1,24 @@
+apply plugin: 'com.android.library'
+
+android {
+    compileSdkVersion rootProject.ext.android.compileSdkVersion
+    buildToolsVersion rootProject.ext.android.buildToolsVersion
+    defaultConfig {
+        minSdkVersion rootProject.ext.android.minSdkVersion
+        targetSdkVersion rootProject.ext.android.targetSdkVersion
+        versionCode rootProject.ext.android.versionCode
+        versionName rootProject.ext.android.versionName
+    }
+    buildTypes {
+        release {
+            minifyEnabled false
+            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
+        }
+    }
+}
+
+dependencies {
+    compile fileTree(dir: 'libs', include: ['*.jar'])
+    testCompile deps.junit
+    compile deps.appcompatV7
+}

+ 25 - 0
app_third/librarytbs/proguard-rules.pro

@@ -0,0 +1,25 @@
+# Add project specific ProGuard rules here.
+# By default, the flags in this file are appended to flags specified
+# in /Users/xianfeng/Develop/SDK/tools/proguard/proguard-android.txt
+# You can edit the include path and order by changing the proguardFiles
+# directive in build.gradle.
+#
+# For more details, see
+#   http://developer.android.com/guide/developing/tools/proguard.html
+
+# Add any project specific keep options here:
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+#   public *;
+#}
+
+# Uncomment this to preserve the line number information for
+# debugging stack traces.
+#-keepattributes SourceFile,LineNumberTable
+
+# If you keep the line number information, uncomment this to
+# hide the original source file name.
+#-renamesourcefileattribute SourceFile

+ 25 - 0
app_third/librarytbs/src/main/AndroidManifest.xml

@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    package="com.yifeng.sample.tbs">
+
+    <uses-permission android:name="android.permission.INTERNET" />
+    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
+    <uses-permission android:name="android.permission.DOWNLOAD_WITHOUT_NOTIFICATION" />
+    <uses-permission android:name="android.permission.ACCESS_DOWNLOAD_MANAGER" />
+    <uses-permission android:name="android.permission.WRITE_SETTINGS" />
+    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
+
+    <application
+        android:allowBackup="true"
+        android:supportsRtl="true">
+        <activity android:name=".TBSFilesActivity">
+            <intent-filter>
+                <action android:name="com.yifeng.sample.tbs.TBSFilesActivity" />
+
+                <category android:name="android.intent.category.DEFAULT" />
+            </intent-filter>
+        </activity>
+  
+    </application>
+
+</manifest>

+ 200 - 0
app_third/librarytbs/src/main/java/com/yifeng/sample/tbs/TBSFilesActivity.java

@@ -0,0 +1,200 @@
+package com.yifeng.sample.tbs;
+
+import android.app.DownloadManager;
+import android.app.DownloadManager.Request;
+import android.content.ActivityNotFoundException;
+import android.content.Intent;
+import android.database.ContentObserver;
+import android.database.Cursor;
+import android.net.Uri;
+import android.os.Bundle;
+import android.os.Environment;
+import android.os.Handler;
+import android.support.v7.app.AppCompatActivity;
+import android.text.TextUtils;
+import android.util.Log;
+import android.view.ViewGroup.LayoutParams;
+import android.widget.RelativeLayout;
+
+import com.tencent.smtt.sdk.TbsReaderView;
+import com.tencent.smtt.sdk.TbsReaderView.ReaderCallback;
+import com.tencent.smtt.sdk.WebSettings;
+import com.tencent.smtt.sdk.WebView;
+import com.tencent.smtt.sdk.WebViewClient;
+
+import java.io.File;
+
+/**
+  * @desc:接收两个参数 
+  * @author:Arison on 2018/1/16
+  */
+public class TBSFilesActivity extends AppCompatActivity implements ReaderCallback {
+
+  private TbsReaderView mTbsReaderView;
+
+  private String filepath;
+  private WebView webView;
+
+  private DownloadManager mDownloadManager;
+  private long mRequestId;
+  private DownloadObserver mDownloadObserver;
+  private String mFileUrl = "http://www.beijing.gov.cn/zhuanti/ggfw/htsfwbxzzt/shxfl/fw/P020150720516332194302.doc";
+  private String mFileName;
+  private String urlpath;
+
+  @Override
+  protected void onCreate(Bundle savedInstanceState) {
+    super.onCreate(savedInstanceState);
+    setContentView(R.layout.activity_tbsfile);
+    mTbsReaderView = new TbsReaderView(this, this);
+    webView= findViewById(R.id.mSimpleWebView);
+    RelativeLayout rootRl =findViewById(R.id.rl_root);
+    rootRl.addView(mTbsReaderView, new RelativeLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
+    mFileName = parseName(mFileUrl);
+    Intent intent=getIntent();
+    if (intent!=null){
+      filepath= intent.getStringExtra("filepath");
+      urlpath=intent.getStringExtra("urlpath");
+      if (TextUtils.isEmpty(filepath)) {
+          filepath = "/storage/emulated/0/uu/HTTP权威指南.pdf";
+      }else{
+        try {
+          if (isLocalExist()) {
+             displayFile();
+          } else {
+            //startDownload();//下载功能
+          }
+        } catch (Exception e) {
+          e.printStackTrace();
+        }
+      }
+      
+      if (!TextUtils.isEmpty(urlpath)){
+        webView.getSettings().setJavaScriptEnabled(true);
+        webView.getSettings().setAllowFileAccess(true);
+        webView.getSettings().setDomStorageEnabled(true);
+        webView.getSettings().setDatabaseEnabled(true);
+        webView.getSettings().setAppCacheEnabled(true);
+        webView.getSettings().setCacheMode(WebSettings.LOAD_DEFAULT);
+    
+        webView.setWebViewClient(new WebViewClient(){
+          public boolean shouldOverrideUrlLoading(WebView view, String url) {
+            if (url.startsWith(WebView.SCHEME_TEL) || url.startsWith("sms:") || url.startsWith(WebView.SCHEME_MAILTO)) {
+              try {
+                Intent intent = new Intent(Intent.ACTION_VIEW);
+                intent.setData(Uri.parse(url));
+                startActivity(intent);
+              } catch (ActivityNotFoundException ignored) {
+              }
+              return true;
+            }
+            webView.loadUrl(url);
+            return true;
+          }
+
+          public void onPageFinished(WebView view, String url) {
+            super.onPageFinished(view, url);
+          }
+        });
+        webView.loadUrl(urlpath);
+      }
+    }
+  }
+  
+  private void displayFile() {
+    Bundle bundle = new Bundle();
+    bundle.putString("filePath", filepath);
+    bundle.putString("tempPath", Environment.getExternalStorageDirectory().getPath());
+    boolean result = mTbsReaderView.preOpen(parseFormat(filepath), false);
+    if (result) {
+      mTbsReaderView.openFile(bundle);
+    }
+  }
+
+  private String parseFormat(String fileName) {
+    return fileName.substring(fileName.lastIndexOf(".") + 1);
+  }
+
+  private String parseName(String url) {
+    String fileName = null;
+    try {
+      fileName = url.substring(url.lastIndexOf("/") + 1);
+    } finally {
+      if (TextUtils.isEmpty(fileName)) {
+        fileName = String.valueOf(System.currentTimeMillis());
+      }
+    }
+    return fileName;
+  }
+
+  private boolean isLocalExist() {
+    return getLocalFile().exists();
+  }
+
+  private File getLocalFile() {
+    return new File(filepath);
+  }
+
+  
+  
+  private void startDownload() {
+    mDownloadObserver = new DownloadObserver(new Handler());
+    getContentResolver().registerContentObserver(Uri.parse("content://downloads/my_downloads"), true, mDownloadObserver);
+
+    mDownloadManager = (DownloadManager) getSystemService(DOWNLOAD_SERVICE);
+    DownloadManager.Request request = new DownloadManager.Request(Uri.parse(mFileUrl));
+    request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, mFileName);
+    request.allowScanningByMediaScanner();
+    request.setNotificationVisibility(Request.VISIBILITY_HIDDEN);
+    mRequestId = mDownloadManager.enqueue(request);
+  }
+
+  private void queryDownloadStatus() {
+    DownloadManager.Query query = new DownloadManager.Query().setFilterById(mRequestId);
+    Cursor cursor = null;
+    try {
+      cursor = mDownloadManager.query(query);
+      if (cursor != null && cursor.moveToFirst()) {
+        //已经下载的字节数
+        int currentBytes = cursor.getInt(cursor.getColumnIndexOrThrow(DownloadManager.COLUMN_BYTES_DOWNLOADED_SO_FAR));
+        //总需下载的字节数
+        int totalBytes = cursor.getInt(cursor.getColumnIndexOrThrow(DownloadManager.COLUMN_TOTAL_SIZE_BYTES));
+        //状态所在的列索引
+        int status = cursor.getInt(cursor.getColumnIndex(DownloadManager.COLUMN_STATUS));
+        Log.i("downloadUpdate: ", currentBytes + " " + totalBytes + " " + status);
+       // mDownloadBtn.setText("正在下载:" + currentBytes + "/" + totalBytes);
+      }
+    } finally {
+      if (cursor != null) {
+        cursor.close();
+      }
+    }
+  }
+
+  @Override
+  public void onCallBackAction(Integer integer, Object o, Object o1) {
+
+  }
+
+  @Override
+  protected void onDestroy() {
+    super.onDestroy();
+    mTbsReaderView.onStop();
+    if (mDownloadObserver != null) {
+      getContentResolver().unregisterContentObserver(mDownloadObserver);
+    }
+  }
+
+  private class DownloadObserver extends ContentObserver {
+
+    private DownloadObserver(Handler handler) {
+      super(handler);
+    }
+
+    @Override
+    public void onChange(boolean selfChange, Uri uri) {
+      Log.i("downloadUpdate: ", "onChange(boolean selfChange, Uri uri)");
+      queryDownloadStatus();
+    }
+  }
+}

BIN
app_third/librarytbs/src/main/jniLibs/armeabi/liblbs.so


+ 18 - 0
app_third/librarytbs/src/main/res/layout/activity_index.xml

@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout 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"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    tools:context="com.yifeng.sample.tbs.IndexActivity">
+
+    <Button
+        android:id="@+id/button"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_alignParentLeft="true"
+        android:layout_alignParentStart="true"
+       android:layout_centerInParent="true"
+       
+        android:text="Button" />
+</RelativeLayout>

+ 11 - 0
app_third/librarytbs/src/main/res/layout/activity_tbsfile.xml

@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout
+  xmlns:android="http://schemas.android.com/apk/res/android"
+  android:id="@+id/rl_root"
+  android:layout_width="match_parent"
+  android:layout_height="match_parent">
+    <com.tencent.smtt.sdk.WebView
+        android:id="@+id/mSimpleWebView"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent" />
+</RelativeLayout>

BIN
app_third/librarytbs/src/main/res/mipmap-hdpi/ic_launcher.png


BIN
app_third/librarytbs/src/main/res/mipmap-hdpi/ic_launcher_round.png


BIN
app_third/librarytbs/src/main/res/mipmap-mdpi/ic_launcher.png


BIN
app_third/librarytbs/src/main/res/mipmap-mdpi/ic_launcher_round.png


BIN
app_third/librarytbs/src/main/res/mipmap-xhdpi/ic_launcher.png


BIN
app_third/librarytbs/src/main/res/mipmap-xhdpi/ic_launcher_round.png


BIN
app_third/librarytbs/src/main/res/mipmap-xxhdpi/ic_launcher.png


BIN
app_third/librarytbs/src/main/res/mipmap-xxhdpi/ic_launcher_round.png


BIN
app_third/librarytbs/src/main/res/mipmap-xxxhdpi/ic_launcher.png


BIN
app_third/librarytbs/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png


+ 6 - 0
app_third/librarytbs/src/main/res/values/colors.xml

@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+  <color name="colorPrimary">#3F51B5</color>
+  <color name="colorPrimaryDark">#303F9F</color>
+  <color name="colorAccent">#FF4081</color>
+</resources>

+ 3 - 0
app_third/librarytbs/src/main/res/values/strings.xml

@@ -0,0 +1,3 @@
+<resources>
+    <string name="app_name">TbsFileSamples</string>
+</resources>

+ 11 - 0
app_third/librarytbs/src/main/res/values/styles.xml

@@ -0,0 +1,11 @@
+<resources>
+
+  <!-- Base application theme. -->
+  <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
+    <!-- Customize your theme here. -->
+    <item name="colorPrimary">@color/colorPrimary</item>
+    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
+    <item name="colorAccent">@color/colorAccent</item>
+  </style>
+
+</resources>

+ 18 - 0
app_third/librarytbs/src/test/java/com/yifeng/sample/tbs/ExampleUnitTest.java

@@ -0,0 +1,18 @@
+package com.yifeng.sample.tbs;
+
+import org.junit.Test;
+
+import static org.junit.Assert.*;
+
+/**
+ * Example local unit test, which will execute on the development machine (host).
+ *
+ * @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
+ */
+public class ExampleUnitTest {
+
+  @Test
+  public void addition_isCorrect() throws Exception {
+    assertEquals(4, 2 + 2);
+  }
+}

+ 2 - 0
settings.gradle

@@ -19,6 +19,7 @@ include ':apptasks'
 include ':apputils'
 
 //第三库模块
+include ':librarytbs'
 include ':lib-zxing'
 include ':libbdupdatesdk'
 include ':libedittextformlibrary'
@@ -50,6 +51,7 @@ project(':apptasks').projectDir = new File('app_modular/apptasks')
 project(':apputils').projectDir = new File('app_modular/apputils')
 
 //第三库模块
+project(':librarytbs').projectDir = new File('app_third/librarytbs')
 project(':lib-zxing').projectDir = new File('app_third/lib-zxing')
 project(':libbdupdatesdk').projectDir = new File('app_third/libbdupdatesdk')
 project(':library-viewpager-indicator').projectDir = new File('app_third/library-viewpager-indicator')