Explorar el Código

Merge branch 'master' of http://192.168.3.207:10080/qmx/jyapp

apple hace 7 años
padre
commit
af760162a5

+ 3 - 0
android/app/.gitignore

@@ -1 +1,4 @@
 /build
+/topnet
+/yingyongbao
+/app.iml

+ 0 - 149
android/app/app.iml

@@ -1,149 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<module external.linked.project.id=":app" external.linked.project.path="$MODULE_DIR$" external.root.project.path="$MODULE_DIR$/.." external.system.id="GRADLE" type="JAVA_MODULE" version="4">
-  <component name="FacetManager">
-    <facet type="android-gradle" name="Android-Gradle">
-      <configuration>
-        <option name="GRADLE_PROJECT_PATH" value=":app" />
-      </configuration>
-    </facet>
-    <facet type="android" name="Android">
-      <configuration>
-        <option name="SELECTED_BUILD_VARIANT" value="debug" />
-        <option name="ASSEMBLE_TASK_NAME" value="assembleDebug" />
-        <option name="COMPILE_JAVA_TASK_NAME" value="compileDebugSources" />
-        <afterSyncTasks>
-          <task>generateDebugSources</task>
-        </afterSyncTasks>
-        <option name="ALLOW_USER_CONFIGURATION" value="false" />
-        <option name="MANIFEST_FILE_RELATIVE_PATH" value="/src/main/AndroidManifest.xml" />
-        <option name="RES_FOLDER_RELATIVE_PATH" value="/src/main/res" />
-        <option name="RES_FOLDERS_RELATIVE_PATH" value="file://$MODULE_DIR$/src/main/res" />
-        <option name="ASSETS_FOLDER_RELATIVE_PATH" value="/src/main/assets" />
-      </configuration>
-    </facet>
-  </component>
-  <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_7">
-    <output url="file://$MODULE_DIR$/build/intermediates/classes/debug" />
-    <output-test url="file://$MODULE_DIR$/build/intermediates/classes/test/debug" />
-    <exclude-output />
-    <content url="file://$MODULE_DIR$">
-      <sourceFolder url="file://$MODULE_DIR$/build/generated/source/apt/debug" isTestSource="false" generated="true" />
-      <sourceFolder url="file://$MODULE_DIR$/build/generated/source/r/debug" isTestSource="false" generated="true" />
-      <sourceFolder url="file://$MODULE_DIR$/build/generated/source/aidl/debug" isTestSource="false" generated="true" />
-      <sourceFolder url="file://$MODULE_DIR$/build/generated/source/buildConfig/debug" isTestSource="false" generated="true" />
-      <sourceFolder url="file://$MODULE_DIR$/build/generated/source/rs/debug" isTestSource="false" generated="true" />
-      <sourceFolder url="file://$MODULE_DIR$/build/generated/res/rs/debug" type="java-resource" />
-      <sourceFolder url="file://$MODULE_DIR$/build/generated/res/resValues/debug" type="java-resource" />
-      <sourceFolder url="file://$MODULE_DIR$/build/generated/source/apt/androidTest/debug" isTestSource="true" generated="true" />
-      <sourceFolder url="file://$MODULE_DIR$/build/generated/source/r/androidTest/debug" isTestSource="true" generated="true" />
-      <sourceFolder url="file://$MODULE_DIR$/build/generated/source/aidl/androidTest/debug" isTestSource="true" generated="true" />
-      <sourceFolder url="file://$MODULE_DIR$/build/generated/source/buildConfig/androidTest/debug" isTestSource="true" generated="true" />
-      <sourceFolder url="file://$MODULE_DIR$/build/generated/source/rs/androidTest/debug" isTestSource="true" generated="true" />
-      <sourceFolder url="file://$MODULE_DIR$/build/generated/res/rs/androidTest/debug" type="java-test-resource" />
-      <sourceFolder url="file://$MODULE_DIR$/build/generated/res/resValues/androidTest/debug" type="java-test-resource" />
-      <sourceFolder url="file://$MODULE_DIR$/build/generated/source/apt/test/debug" isTestSource="true" generated="true" />
-      <sourceFolder url="file://$MODULE_DIR$/src/debug/res" type="java-resource" />
-      <sourceFolder url="file://$MODULE_DIR$/src/debug/resources" type="java-resource" />
-      <sourceFolder url="file://$MODULE_DIR$/src/debug/assets" type="java-resource" />
-      <sourceFolder url="file://$MODULE_DIR$/src/debug/aidl" isTestSource="false" />
-      <sourceFolder url="file://$MODULE_DIR$/src/debug/java" isTestSource="false" />
-      <sourceFolder url="file://$MODULE_DIR$/src/debug/rs" isTestSource="false" />
-      <sourceFolder url="file://$MODULE_DIR$/src/debug/shaders" isTestSource="false" />
-      <sourceFolder url="file://$MODULE_DIR$/src/androidTestDebug/res" type="java-test-resource" />
-      <sourceFolder url="file://$MODULE_DIR$/src/androidTestDebug/resources" type="java-test-resource" />
-      <sourceFolder url="file://$MODULE_DIR$/src/androidTestDebug/assets" type="java-test-resource" />
-      <sourceFolder url="file://$MODULE_DIR$/src/androidTestDebug/aidl" isTestSource="true" />
-      <sourceFolder url="file://$MODULE_DIR$/src/androidTestDebug/java" isTestSource="true" />
-      <sourceFolder url="file://$MODULE_DIR$/src/androidTestDebug/rs" isTestSource="true" />
-      <sourceFolder url="file://$MODULE_DIR$/src/androidTestDebug/shaders" isTestSource="true" />
-      <sourceFolder url="file://$MODULE_DIR$/src/testDebug/res" type="java-test-resource" />
-      <sourceFolder url="file://$MODULE_DIR$/src/testDebug/resources" type="java-test-resource" />
-      <sourceFolder url="file://$MODULE_DIR$/src/testDebug/assets" type="java-test-resource" />
-      <sourceFolder url="file://$MODULE_DIR$/src/testDebug/aidl" isTestSource="true" />
-      <sourceFolder url="file://$MODULE_DIR$/src/testDebug/java" isTestSource="true" />
-      <sourceFolder url="file://$MODULE_DIR$/src/testDebug/rs" isTestSource="true" />
-      <sourceFolder url="file://$MODULE_DIR$/src/testDebug/shaders" isTestSource="true" />
-      <sourceFolder url="file://$MODULE_DIR$/src/main/res" type="java-resource" />
-      <sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
-      <sourceFolder url="file://$MODULE_DIR$/src/main/assets" type="java-resource" />
-      <sourceFolder url="file://$MODULE_DIR$/src/main/aidl" isTestSource="false" />
-      <sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
-      <sourceFolder url="file://$MODULE_DIR$/src/main/rs" isTestSource="false" />
-      <sourceFolder url="file://$MODULE_DIR$/src/main/shaders" isTestSource="false" />
-      <sourceFolder url="file://$MODULE_DIR$/src/androidTest/res" type="java-test-resource" />
-      <sourceFolder url="file://$MODULE_DIR$/src/androidTest/resources" type="java-test-resource" />
-      <sourceFolder url="file://$MODULE_DIR$/src/androidTest/assets" type="java-test-resource" />
-      <sourceFolder url="file://$MODULE_DIR$/src/androidTest/aidl" isTestSource="true" />
-      <sourceFolder url="file://$MODULE_DIR$/src/androidTest/java" isTestSource="true" />
-      <sourceFolder url="file://$MODULE_DIR$/src/androidTest/rs" isTestSource="true" />
-      <sourceFolder url="file://$MODULE_DIR$/src/androidTest/shaders" isTestSource="true" />
-      <sourceFolder url="file://$MODULE_DIR$/src/test/res" type="java-test-resource" />
-      <sourceFolder url="file://$MODULE_DIR$/src/test/resources" type="java-test-resource" />
-      <sourceFolder url="file://$MODULE_DIR$/src/test/assets" type="java-test-resource" />
-      <sourceFolder url="file://$MODULE_DIR$/src/test/aidl" isTestSource="true" />
-      <sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
-      <sourceFolder url="file://$MODULE_DIR$/src/test/rs" isTestSource="true" />
-      <sourceFolder url="file://$MODULE_DIR$/src/test/shaders" isTestSource="true" />
-      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/assets" />
-      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/blame" />
-      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/check-manifest" />
-      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/classes" />
-      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/incremental" />
-      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/javaPrecompile" />
-      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/jniLibs" />
-      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/manifests" />
-      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/prebuild" />
-      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/res" />
-      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/rs" />
-      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/shaders" />
-      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/splits-support" />
-      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/symbols" />
-      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/tmp" />
-      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/transforms" />
-      <excludeFolder url="file://$MODULE_DIR$/build/outputs" />
-      <excludeFolder url="file://$MODULE_DIR$/build/tmp" />
-    </content>
-    <orderEntry type="jdk" jdkName="Android API 26 Platform" jdkType="Android SDK" />
-    <orderEntry type="sourceFolder" forTests="false" />
-    <orderEntry type="library" name="__local_aars__:E.\jyapp\android\app\libs\umeng_social_tool.jar:unspecified@jar" level="project" />
-    <orderEntry type="library" name="com.android.support:support-media-compat-26.1.0" level="project" />
-    <orderEntry type="library" name="__local_aars__:E.\jyapp\android\app\libs\SocialSDK_WeChat_Simplify.jar:unspecified@jar" level="project" />
-    <orderEntry type="library" name="com.android.support:recyclerview-v7-26.1.0" level="project" />
-    <orderEntry type="library" scope="TEST" name="junit:junit:4.12@jar" level="project" />
-    <orderEntry type="library" name="android.arch.lifecycle:common:1.0.0@jar" level="project" />
-    <orderEntry type="library" scope="TEST" name="com.android.support.test.espresso:espresso-core-3.0.1" level="project" />
-    <orderEntry type="library" name="com.android.support:support-fragment-26.1.0" level="project" />
-    <orderEntry type="library" scope="TEST" name="javax.inject:javax.inject:1@jar" level="project" />
-    <orderEntry type="library" scope="TEST" name="com.squareup:javawriter:2.1.1@jar" level="project" />
-    <orderEntry type="library" name="com.android.support:support-vector-drawable-26.1.0" level="project" />
-    <orderEntry type="library" name="android.arch.lifecycle:runtime-1.0.0" level="project" />
-    <orderEntry type="library" name="com.android.support:appcompat-v7-26.1.0" level="project" />
-    <orderEntry type="library" name="com.android.support:support-annotations:26.1.0@jar" level="project" />
-    <orderEntry type="library" name="__local_aars__:E.\jyapp\android\app\libs\umeng_social_shareboard.jar:unspecified@jar" level="project" />
-    <orderEntry type="library" name="com.android.support.constraint:constraint-layout-solver:1.0.2@jar" level="project" />
-    <orderEntry type="library" name="com.android.support:support-core-utils-26.1.0" level="project" />
-    <orderEntry type="library" name="com.android.support.constraint:constraint-layout-1.0.2" level="project" />
-    <orderEntry type="library" name="com.android.support:support-core-ui-26.1.0" level="project" />
-    <orderEntry type="library" scope="TEST" name="com.android.support.test:runner-1.0.1" level="project" />
-    <orderEntry type="library" scope="TEST" name="com.android.support.test:rules-1.0.1" level="project" />
-    <orderEntry type="library" name="__local_aars__:E.\jyapp\android\app\libs\umeng_social_net.jar:unspecified@jar" level="project" />
-    <orderEntry type="library" scope="TEST" name="com.google.code.findbugs:jsr305:2.0.1@jar" level="project" />
-    <orderEntry type="library" scope="TEST" name="com.android.support.test.espresso:espresso-idling-resource-3.0.1" level="project" />
-    <orderEntry type="library" scope="TEST" name="org.hamcrest:hamcrest-core:1.3@jar" level="project" />
-    <orderEntry type="library" name="com.android.support:support-compat-26.1.0" level="project" />
-    <orderEntry type="library" name="__local_aars__:E.\jyapp\android\app\libs\umeng_social_api.jar:unspecified@jar" level="project" />
-    <orderEntry type="library" name="__local_aars__:E.\jyapp\android\app\libs\umeng_shareboard_widget.jar:unspecified@jar" level="project" />
-    <orderEntry type="library" name="__local_aars__:E.\jyapp\android\app\libs\jcore-android-1.1.9.jar:unspecified@jar" level="project" />
-    <orderEntry type="library" name="android.arch.core:common:1.0.0@jar" level="project" />
-    <orderEntry type="library" scope="TEST" name="org.hamcrest:hamcrest-library:1.3@jar" level="project" />
-    <orderEntry type="library" scope="TEST" name="org.hamcrest:hamcrest-integration:1.3@jar" level="project" />
-    <orderEntry type="library" name="__local_aars__:E.\jyapp\android\app\libs\mobileshieldsdk.jar:unspecified@jar" level="project" />
-    <orderEntry type="library" name="com.android.support:support-v4-26.1.0" level="project" />
-    <orderEntry type="library" name="__local_aars__:E.\jyapp\android\app\libs\SocialSDK_QQ_Simplify.jar:unspecified@jar" level="project" />
-    <orderEntry type="library" scope="TEST" name="net.sf.kxml:kxml2:2.3.0@jar" level="project" />
-    <orderEntry type="library" name="com.android.support:animated-vector-drawable-26.1.0" level="project" />
-    <orderEntry type="library" name="com.android.support:design-26.1.0" level="project" />
-    <orderEntry type="library" name="com.android.support:transition-26.1.0" level="project" />
-    <orderEntry type="library" name="__local_aars__:E.\jyapp\android\app\libs\jpush-android-3.1.1.jar:unspecified@jar" level="project" />
-  </component>
-</module>

+ 28 - 1
android/app/build.gradle

@@ -7,7 +7,8 @@ android {
         minSdkVersion 19
         targetSdkVersion 26
         versionCode 1
-        versionName "1.0.2"
+        versionName "1.0.4"
+        flavorDimensions "different"
         testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
     }
     buildTypes {
@@ -20,6 +21,29 @@ android {
             proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
         }
     }
+    android.applicationVariants.all { variant ->
+        variant.outputs.all {
+            if (outputFileName.endsWith(".apk")) {
+                def flavorName = variant.flavorName
+                def buildTypeName = variant.buildType.name
+                outputFileName = "jyapp_" + flavorName + "_" + buildTypeName + "_V${versionName}.apk"
+            }
+        }
+    }
+    /*多渠道打包------------------------------------------------------*/
+    productFlavors {
+        yingyongbao {}
+        baidu {}
+        wandoujia {}
+        xiaomi {}
+        huawei {}
+        meizu {}
+        topnet {}
+    }
+    productFlavors.all {
+        flavor -> flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]
+    }
+    /*多渠道打包------------------------------------------------------*/
     signingConfigs {
         debug {
             storeFile file('jyApp.jks')
@@ -45,4 +69,7 @@ dependencies {
 
     androidTestImplementation 'com.android.support.test:runner:1.0.1'
     androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
+    compile 'com.umeng.sdk:common:latest.integration'
+    compile'com.umeng.analytics:analytics:latest.integration'
+    compile 'com.umeng.sdk:utdid:1.1.5.3'
 }

+ 8 - 1
android/app/src/main/AndroidManifest.xml

@@ -20,6 +20,10 @@
     <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
     <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
     <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" /> <!-- 用于开启 debug 版本的应用在6.0 系统上 层叠窗口权限 -->
+    <!-- 添加如下权限,以便使用更多的第三方SDK和更精准的统计数据 -->
+    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
+    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
+    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
 
     <application
         android:name=".App"
@@ -70,7 +74,7 @@
                 <action android:name="android.intent.action.VIEW" />
                 <category android:name="android.intent.category.DEFAULT" />
                 <category android:name="android.intent.category.BROWSABLE" />
-                <data android:scheme="tencent100424468" />
+                <data android:scheme="tencent1106703118" />
             </intent-filter>
         </activity>
 
@@ -176,6 +180,9 @@
             android:name="UMENG_APPKEY"
             android:value="5a685314b27b0a53710001fb" >
         </meta-data>
+        <meta-data
+            android:name="UMENG_CHANNEL"
+            android:value="${UMENG_CHANNEL_VALUE}" />
     </application>
 
 </manifest>

+ 2 - 0
android/app/src/main/java/com/topsoft/jianyu/ExternalWebPage.java

@@ -11,6 +11,7 @@ import android.os.Handler;
 import android.os.Message;
 import android.support.annotation.Nullable;
 import android.support.v7.app.AppCompatActivity;
+import android.util.Log;
 import android.view.KeyEvent;
 import android.view.View;
 import android.view.ViewGroup;
@@ -139,6 +140,7 @@ public class ExternalWebPage extends AppCompatActivity{
         wv.setWebViewClient(new WebViewClient() {
             public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
                 uiHandler.obtainMessage(301).sendToTarget();//webview不可见
+                Log.e("ExternalWebPage", "页面相应出错description: "+description+"   地址:"+failingUrl );
             }
         });
         wv.setWebChromeClient(new WebChromeClient() {

+ 13 - 0
android/app/src/main/java/com/topsoft/jianyu/JyObj.java

@@ -17,6 +17,7 @@ import com.topsoft.jianyu.listener.CustomLoginListerner;
 import com.topsoft.jianyu.listener.CustomRemoveLoginListerner;
 import com.topsoft.jianyu.listener.CustomShareListener;
 import com.topsoft.jianyu.util.AppUtil;
+import com.topsoft.jianyu.util.StatisticsUtil;
 import com.umeng.socialize.ShareAction;
 import com.umeng.socialize.UMShareAPI;
 import com.umeng.socialize.UMShareListener;
@@ -214,4 +215,16 @@ public class JyObj {
                 });
         builder.create().show();
     }
+
+    //用户点击活动页面
+    @JavascriptInterface
+    public void openActivityPage(String url,String rectype,String openid){
+        StatisticsUtil.SendStatistics(url,openid,rectype);
+    }
+
+    //用户
+    @JavascriptInterface
+    public void changeMessageType(String url){
+        DbBase.getInstance(mContext).changeMessageTypeByUrl(url);
+    }
 }

+ 22 - 3
android/app/src/main/java/com/topsoft/jianyu/MainActivity.java

@@ -116,6 +116,7 @@ public class MainActivity extends AppCompatActivity {
         wv.setWebViewClient(new WebViewClient() {
             public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
                 mainHandler.obtainMessage(301).sendToTarget();//webview不可见
+                Log.e("MainActivity", "页面相应出错description: "+description+"   地址:"+failingUrl );
             }
         });
         wv.setWebChromeClient(new WebChromeClient() {
@@ -303,7 +304,12 @@ public class MainActivity extends AppCompatActivity {
                         pushurl=url;
                         new Handler().postDelayed(new Runnable() {
                             public void run() {
-                                wv.loadUrl(AppUtil.AppUrl+url);
+                                if(url.contains("http://")||url.contains("https://")){
+                                    wv.loadUrl(url);
+                                }else{
+                                    wv.loadUrl(AppUtil.AppUrl+url);
+                                }
+
                             }
                         }, 100);
                     }else{
@@ -326,11 +332,11 @@ public class MainActivity extends AppCompatActivity {
                     mainActivity.NetworkError(true);
                     break;
                 case 2003:
-                    //增加未读消息小红点提醒
+                    //更新未读消息小红点提醒
                     wv.post(new Runnable() {
                         @Override
                         public void run() {
-                            wv.loadUrl("javascript:afterReceiveNewMsg();");
+                            wv.loadUrl("javascript:afterPageInit();");
                         }
                     });
                     break;
@@ -388,6 +394,19 @@ public class MainActivity extends AppCompatActivity {
                     String c=b.getString("content","");
                     mainActivity.AlertDialog(c);
                     break;
+                case 1201:
+                    //分享回调
+                    Bundle shareBundle = msg.getData();
+                    final String type=shareBundle.getString("type");
+                    final String flag=shareBundle.getString("flag");
+
+                    wv.post(new Runnable() {
+                        @Override
+                        public void run() {
+                            wv.loadUrl("javascript:shareCallBack('"+type+"','"+flag+"');");
+                        }
+                    });
+                    break;
             }
         }
     }

+ 31 - 0
android/app/src/main/java/com/topsoft/jianyu/MyReceiver.java

@@ -13,6 +13,7 @@ import android.util.Log;
 
 import com.topsoft.jianyu.SQLite.DbBase;
 import com.topsoft.jianyu.SQLite.JyMessage;
+import com.topsoft.jianyu.util.StatisticsUtil;
 
 import org.json.JSONException;
 import org.json.JSONObject;
@@ -57,6 +58,7 @@ public class MyReceiver extends BroadcastReceiver {
 					descript=litObj.has("descript")?litObj.getString("descript"):"";
 					extend=litObj.has("extend")?litObj.getJSONObject("extend")+"":"";
 					pushTime=litObj.has("pushTime")?litObj.getString("pushTime"):"";
+
 					//存入数据库
 					JyMessage oneMsg=new JyMessage(title,content,url,type,0,(int)(System.currentTimeMillis()/1000),openid,descript,extend,pushTime);
 					if(DbBase.getInstance(context).insertMessage(oneMsg)){
@@ -68,6 +70,10 @@ public class MyReceiver extends BroadcastReceiver {
 					}else{
 						System.out.println("插入推送消息失败");
 					}
+					//向后台发送统计-收到信息
+					if("message".equals(type)){
+						StatisticsUtil.SendStatistics(url,openid,"D");
+					}
 				}
 			} catch (Exception e){
 				Log.e(LOG_TAG,"接受信息出错"+e.getMessage());
@@ -116,8 +122,33 @@ public class MyReceiver extends BroadcastReceiver {
 						if("".equals(type)&&!"".equals(url)) url=url+integer;
 					}
 				}
+
+
+
+				String openid=litObj.has("openid")?litObj.getString("openid"):"";
+				String type=obj.has("type")?obj.getString("type"):"";
+				//向后台发送统计-点击消息
+				if("message".equals(type)){
+					if(!"".equals(url)){
+						StatisticsUtil.SendStatistics(url,openid,"C");
+						//StatisticsUtil.SendStatistics(url,openid,"C");
+						//改变  message  ==》 message_r
+						DbBase.getInstance(context).changeMessageTypeByUrl(url);
+					}
+				}
+
+
 				Message message = Message.obtain();
 				message.what = 2001;
+				//type 为message 类型的  url需要截取
+				if("message".equals(type)){
+					String str[]=url.split("==");
+					if(str.length==2){
+						url=str[0];
+					}else{
+						Log.e("MyRecevier","onReceive: 截取url出错"+ url);
+					}
+				}
 				Bundle b= new Bundle();
 				b.putString("url", url);
 				message.setData(b);

+ 40 - 0
android/app/src/main/java/com/topsoft/jianyu/SQLite/DbBase.java

@@ -425,4 +425,44 @@ public class DbBase {
         }
         return num;
     }
+
+    //改变信息类型   用于区分message是否点击过  message_r
+    public boolean changeMessageTypeByUrl(String url) {
+        if("".equals(url)){
+            return false;
+        }
+        boolean result = true;
+        DBHelper dbHelper = new DBHelper(context,DB_NAME,null,1);
+        SQLiteDatabase db =dbHelper.getWritableDatabase();
+        try {
+            db.beginTransaction();
+            ContentValues cv = new ContentValues();
+            cv.put("category", "message_r");
+
+            String whereClause = "link=?";
+            String[] whereArgs = {url};
+            //参数1 是要更新的表名
+            //参数2 是一个ContentValeus对象
+            //参数3 是where子句
+            if(db.update(MASSAHE_TABLE_NAME, cv, whereClause, whereArgs)<0){
+                result=false;
+            }
+            if (result) {
+                db.setTransactionSuccessful();
+            }
+        } catch (Exception e) {
+            Log.e(LOG_TAG,e.getMessage());
+            return false;
+        } finally {
+            try {
+                if (null != db) {
+                    db.endTransaction();
+                    db.close();
+                }
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+        }
+        return result;
+    }
 }

+ 1 - 0
android/app/src/main/java/com/topsoft/jianyu/SQLite/JyMessage.java

@@ -147,6 +147,7 @@ public class JyMessage {
         cv.put("descript",descript);
         cv.put("openid",openid);
         cv.put("pushTime",pushTime);
+        cv.put("extend",extend);
         return cv;
     }
 }

+ 34 - 0
android/app/src/main/java/com/topsoft/jianyu/WelcomePage.java

@@ -2,6 +2,7 @@ package com.topsoft.jianyu;
 
 
 import android.content.Intent;
+import android.content.pm.ApplicationInfo;
 import android.content.pm.PackageManager;
 import android.os.Bundle;
 import android.os.Handler;
@@ -9,8 +10,12 @@ import android.support.annotation.NonNull;
 import android.support.annotation.Nullable;
 import android.support.v4.app.ActivityCompat;
 import android.support.v7.app.AppCompatActivity;
+import android.widget.Toast;
 
 import com.topsoft.jianyu.util.AppUtil;
+import com.umeng.analytics.MobclickAgent;
+import com.umeng.commonsdk.UMConfigure;
+import com.umeng.commonsdk.utils.UMUtils;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -31,9 +36,27 @@ public class WelcomePage extends AppCompatActivity {
         setContentView(R.layout.welcome_page);
         AppUtil.setAndroidNativeLightStatusBar(this,true,true);
         mPermissionList.clear();
+
+        //统计渠道来源
+        UMConfigure.init(this, UMConfigure.DEVICE_TYPE_PHONE, "");
+        UMUtils.setChannel(this,getChannel());
+
         permissionCheck(permissions);
     }
 
+    public void onResume(){
+
+        super.onResume();
+
+        MobclickAgent.onResume(this);}
+
+    public void onPause(){
+
+        super.onPause();
+
+        MobclickAgent.onPause(this);
+
+    }
     //跳转Mainactivity
     private void toMainActivity(){
         new Handler().postDelayed(new Runnable() {
@@ -73,4 +96,15 @@ public class WelcomePage extends AppCompatActivity {
                 break;
         }
     }
+    //多渠道打包获取值
+    private String getChannel(){
+        try{
+            PackageManager pm=getPackageManager();
+            ApplicationInfo applicationInfo=pm.getApplicationInfo(getPackageName(),PackageManager.GET_META_DATA);
+            return applicationInfo.metaData.getString("UMENG_CHANNEL");
+        }catch (PackageManager.NameNotFoundException e){
+            e.printStackTrace();
+        }
+        return "";
+    }
 }

+ 42 - 0
android/app/src/main/java/com/topsoft/jianyu/listener/CustomShareListener.java

@@ -3,6 +3,8 @@ package com.topsoft.jianyu.listener;
 import android.app.Activity;
 import android.app.Dialog;
 import android.content.Context;
+import android.os.Bundle;
+import android.os.Message;
 import android.widget.Toast;
 
 import com.topsoft.jianyu.MainActivity;
@@ -39,6 +41,26 @@ public  class CustomShareListener implements UMShareListener {
         if(!platform.equals(SHARE_MEDIA.WEIXIN)&&!platform.equals(SHARE_MEDIA.WEIXIN_CIRCLE)){
             LoadingUtils.closeDialog(dialog);
         }
+        //分享成功
+        Message message = Message.obtain();
+        message.what = 1201;
+        Bundle b= new Bundle();
+        String type="";
+        switch (platform.name()){
+            case "WEIXIN":
+                type="1";
+                break;
+            case "QQ":
+                type="2";
+                break;
+            case "WEIXIN_CIRCLE":
+                type="3";
+                break;
+        }
+        b.putString("type", type);
+        b.putString("flag","1");
+        message.setData(b);
+        MainActivity.mainHandler.sendMessage(message);
     }
 
     @Override
@@ -62,6 +84,26 @@ public  class CustomShareListener implements UMShareListener {
         if(!platform.equals(SHARE_MEDIA.WEIXIN)&&!platform.equals(SHARE_MEDIA.WEIXIN_CIRCLE)){
             LoadingUtils.closeDialog(dialog);
         }
+        //取消分享
+        Message message = Message.obtain();
+        message.what = 1201;
+        Bundle b= new Bundle();
+        String type="";
+        switch (platform.name()){
+            case "WEIXIN":
+                type="1";
+                break;
+            case "QQ":
+                type="2";
+                break;
+            case "WEIXIN_CIRCLE":
+                type="3";
+                break;
+        }
+        b.putString("type", type);
+        b.putString("flag","0");
+        message.setData(b);
+        MainActivity.mainHandler.sendMessage(message);
     }
 }
 

+ 5 - 2
android/app/src/main/java/com/topsoft/jianyu/util/AppUtil.java

@@ -28,9 +28,12 @@ public class AppUtil {
 
     public static String JPUSH_CLIENT_RGSID;//记录极光推送客户端id
 
-    public static String AppUrl="http://webwcj.qmx.top";
+    //public static String AppUrl="http://webwcj.qmx.top";
     //public static String AppUrl="http://w2blmjy.qmx.top";
-    //public static String AppUrl="https://www.jianyu360.com/";
+    public static String AppUrl="https://www.jianyu360.com";
+    //public static String AppUrl="http://webws.qmx.top";
+
+
     /**
      * 判断当前应用是否是debug状态
      */

+ 32 - 0
android/app/src/main/java/com/topsoft/jianyu/util/StatisticsUtil.java

@@ -0,0 +1,32 @@
+package com.topsoft.jianyu.util;
+
+import android.util.Log;
+
+import com.ccit.www.mobileshieldsdk.okutils.okhttputils.OkHttpUtils;
+
+import java.io.IOException;
+
+/**
+ * Created by wangkaiyue on 2018/7/27.
+ * 用于统计用户点击活动
+ */
+
+public class StatisticsUtil {
+
+    static String TAG="Statistics";
+    private final static String StatisticsUrl=AppUtil.AppUrl+"/jyapp/free/message/receive";
+
+    public static void SendStatistics(final String url,final String openid,final String rectype){
+        new Thread(new Runnable(){
+            @Override
+            public void run() {
+                try {
+                    OkHttpUtils.post().url(StatisticsUrl).addParams("url",url).addParams("openid",openid).addParams("rectype",rectype).build().execute();
+                    Log.d(TAG, "发送统计 url:"+url+"  openid:"+openid+"  rectype:"+rectype);
+                } catch (IOException e) {
+                    Log.e(TAG, "run: "+e.getMessage());
+                }
+            }
+        }).start();
+    }
+}

+ 3 - 7
android/local.properties

@@ -1,12 +1,8 @@
-## This file is automatically generated by Android Studio.
-# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
-#
-# This file must *NOT* be checked into Version Control Systems,
+## This file must *NOT* be checked into Version Control Systems,
 # as it contains information specific to your local configuration.
 #
 # Location of the SDK. This is only used by Gradle.
 # For customization when using a Version Control System, please read the
 # header note.
-#Wed Jan 24 13:38:28 CST 2018
-ndk.dir=C\:\\Users\\wangkaiyue\\AppData\\Local\\Android\\Sdk\\ndk-bundle
-sdk.dir=C\:\\Users\\wangkaiyue\\AppData\\Local\\Android\\Sdk
+#Fri Aug 03 16:10:32 CST 2018
+sdk.dir=C\:\\Users\\Administrator\\AppData\\Local\\Android\\Sdk