@ -0,0 +1 @@
|
||||
{"flutterSdkVersion":"1.20.2"}
|
@ -0,0 +1,61 @@
|
||||
# Miscellaneous
|
||||
*.class
|
||||
*.log
|
||||
*.pyc
|
||||
*.swp
|
||||
.DS_Store
|
||||
.atom/
|
||||
.buildlog/
|
||||
.history
|
||||
.svn/
|
||||
|
||||
# IntelliJ related
|
||||
*.iml
|
||||
*.ipr
|
||||
*.iws
|
||||
.idea/
|
||||
|
||||
# Visual Studio Code related
|
||||
.vscode/
|
||||
|
||||
# Flutter repo-specific
|
||||
/bin/cache/
|
||||
/bin/mingit/
|
||||
/dev/benchmarks/mega_gallery/
|
||||
/dev/bots/.recipe_deps
|
||||
/dev/bots/android_tools/
|
||||
/dev/docs/doc/
|
||||
/dev/docs/flutter.docs.zip
|
||||
/dev/docs/lib/
|
||||
/dev/docs/pubspec.yaml
|
||||
/packages/flutter/coverage/
|
||||
version
|
||||
|
||||
# packages file containing multi-root paths
|
||||
.packages.generated
|
||||
|
||||
# Flutter/Dart/Pub related
|
||||
**/doc/api/
|
||||
.dart_tool/
|
||||
.flutter-plugins
|
||||
.flutter-plugins-dependencies
|
||||
.packages
|
||||
.pub-cache/
|
||||
.pub/
|
||||
/build/
|
||||
flutter_*.png
|
||||
linked_*.ds
|
||||
unlinked.ds
|
||||
unlinked_spec.ds
|
||||
# .flutter version manager related
|
||||
.fvm/flutter_sdk
|
||||
|
||||
# Coverage
|
||||
coverage/
|
||||
|
||||
# Exceptions to above rules.
|
||||
!**/ios/**/default.mode1v3
|
||||
!**/ios/**/default.mode2v3
|
||||
!**/ios/**/default.pbxuser
|
||||
!**/ios/**/default.perspectivev3
|
||||
!/packages/flutter_tools/test/data/dart_dependencies_test/**/.packages
|
@ -0,0 +1,10 @@
|
||||
# This file tracks properties of this Flutter project.
|
||||
# Used by Flutter tool to assess capabilities and perform upgrades etc.
|
||||
#
|
||||
# This file should be version controlled and should not be manually edited.
|
||||
|
||||
version:
|
||||
revision: 8661d8aecd626f7f57ccbcb735553edc05a2e713
|
||||
channel: stable
|
||||
|
||||
project_type: app
|
@ -0,0 +1,61 @@
|
||||
|
||||
# recook
|
||||
|
||||
## 瑞库客 商城应用 📦
|
||||
|
||||
### Before Started
|
||||
|
||||
`fluwx` 和 `sharesdk_plugin`冲突 ,参考 [ShareSDK(分享插件)和Fluwx(微信支付插件)存在冲突](https://github.com/OpenFlutter/fluwx/blob/master/doc/QA_CN.md#sharesdk%E5%88%86%E4%BA%AB%E6%8F%92%E4%BB%B6%E5%92%8Cfluwx%E5%BE%AE%E4%BF%A1%E6%94%AF%E4%BB%98%E6%8F%92%E4%BB%B6%E5%AD%98%E5%9C%A8%E5%86%B2%E7%AA%81)
|
||||
|
||||
由于历史原因,下面给出本项目解决方案
|
||||
|
||||
找到`./ios/.symlinks/plugin`目录
|
||||
|
||||
将其中的`fluwx`目录下的 `./ios/fluwx.podspec` 中微信相关的依赖设置为`s.dependency 'mob_sharesdk/ShareSDKPlatforms/WeChatFull'`
|
||||
|
||||
``` podsepec
|
||||
... ...
|
||||
s.homepage = 'https://github.com/OpenFlutter/fluwx'
|
||||
s.license = { :file => '../LICENSE' }
|
||||
s.author = { 'JarvanMo' => 'jarvan.mo@gmail.com' }
|
||||
s.source = { :path => '.' }
|
||||
s.source_files = 'Classes/**/*'
|
||||
s.public_header_files = 'Classes/public/*.h'
|
||||
s.static_framework = true
|
||||
s.dependency 'Flutter'
|
||||
# s.dependency 'WechatOpenSDK', '1.8.6.2'
|
||||
s.dependency 'mob_sharesdk/ShareSDKPlatforms/WeChatFull'
|
||||
# s.dependency 'OpenWeChatSDK','~> 1.8.3+10'
|
||||
# s.xcconfig = { 'HEADER_SEARCH_PATHS' => "${PODS_ROOT}/Headers/Public/#{s.name}" }
|
||||
s.frameworks = ["SystemConfiguration", "CoreTelephony","WebKit"]
|
||||
s.libraries = ["z", "sqlite3.0", "c++"]
|
||||
s.preserve_paths = 'Lib/*.a'
|
||||
s.vendored_libraries = "**/*.a"
|
||||
s.ios.deployment_target = '8.0'
|
||||
... ...
|
||||
```
|
||||
|
||||
将`sharesdk_plugin`目录中`./ios/sharesdk_plugin.podspec`中微信依赖设置为`s.dependency 'mob_sharesdk/ShareSDKPlatforms/WeChatFull'`
|
||||
|
||||
``` podspec
|
||||
... ...
|
||||
s.dependency 'Flutter'
|
||||
s.dependency 'mob_sharesdk'
|
||||
s.dependency 'mob_sharesdk/ShareSDKExtension'
|
||||
s.dependency 'mob_sharesdk/ShareSDKUI'
|
||||
s.dependency 'mob_sharesdk/ShareSDKPlatforms/QQ'
|
||||
s.dependency 'mob_sharesdk/ShareSDKPlatforms/SinaWeibo'
|
||||
# s.dependency 'mob_sharesdk/ShareSDKPlatforms/WeChat'
|
||||
s.dependency 'mob_sharesdk/ShareSDKPlatforms/WeChatFull'
|
||||
s.dependency 'mob_sharesdk/ShareSDKPlatforms/Facebook'
|
||||
s.dependency 'mob_sharesdk/ShareSDKPlatforms/Twitter'
|
||||
s.dependency 'mob_sharesdk/ShareSDKPlatforms/Douyin'
|
||||
s.dependency 'mob_sharesdk/ShareSDKPlatforms/Oasis'
|
||||
s.dependency 'mob_sharesdk/ShareSDKPlatforms/Line'
|
||||
s.dependency 'mob_sharesdk/ShareSDKPlatforms/SnapChat'
|
||||
s.dependency 'mob_sharesdk/ShareSDKPlatforms/WatermelonVideo'
|
||||
s.dependency 'mob_sharesdk/ShareSDKPlatforms/KuaiShou'
|
||||
... ...
|
||||
```
|
||||
|
||||
注意 *⚠️ 本修改直接修改依赖文件,需要注意其他使用相同依赖的项目*
|
@ -0,0 +1,7 @@
|
||||
gradle-wrapper.jar
|
||||
/.gradle
|
||||
/captures/
|
||||
/gradlew
|
||||
/gradlew.bat
|
||||
/local.properties
|
||||
GeneratedPluginRegistrant.java
|
@ -0,0 +1,143 @@
|
||||
def localProperties = new Properties()
|
||||
def localPropertiesFile = rootProject.file('local.properties')
|
||||
if (localPropertiesFile.exists()) {
|
||||
localPropertiesFile.withReader('UTF-8') { reader ->
|
||||
localProperties.load(reader)
|
||||
}
|
||||
}
|
||||
|
||||
def flutterRoot = localProperties.getProperty('flutter.sdk')
|
||||
if (flutterRoot == null) {
|
||||
// throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.")
|
||||
}
|
||||
|
||||
def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
|
||||
if (flutterVersionCode == null) {
|
||||
flutterVersionCode = '1'
|
||||
}
|
||||
|
||||
def flutterVersionName = localProperties.getProperty('flutter.versionName')
|
||||
if (flutterVersionName == null) {
|
||||
flutterVersionName = '1.0'
|
||||
}
|
||||
|
||||
apply plugin: 'com.android.application'
|
||||
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
|
||||
|
||||
apply plugin: 'com.mob.sdk'
|
||||
MobSDK {
|
||||
appKey "2e499d0b6a624"
|
||||
appSecret "bd3f4abb0124b99db715c062dd280fd1"
|
||||
ShareSDK {
|
||||
loopShare true
|
||||
devInfo {
|
||||
QQ {
|
||||
appId "101876843"
|
||||
appKey "6f367bfad98978e22c2e11897dd74f00"
|
||||
}
|
||||
SinaWeibo {
|
||||
appKey "3484799074"
|
||||
appSecret "0cc08d31b4d63dc81fbb7a2559999fb3"
|
||||
callbackUri "https://www.reecook.cn"
|
||||
}
|
||||
QZone {
|
||||
appId "101876843"
|
||||
appKey "6f367bfad98978e22c2e11897dd74f00"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
android {
|
||||
compileSdkVersion 28
|
||||
|
||||
lintOptions {
|
||||
disable 'InvalidPackage'
|
||||
}
|
||||
|
||||
defaultConfig {
|
||||
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
|
||||
applicationId "com.akuhome.recook"
|
||||
minSdkVersion 16
|
||||
targetSdkVersion 28
|
||||
versionCode flutterVersionCode.toInteger()
|
||||
versionName flutterVersionName
|
||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||
// ndk {
|
||||
// //设置支持的SO库架构
|
||||
// abiFilters 'armeabi-v7a', 'x86'//, 'arm64-v8a', 'x86', 'x86_64'
|
||||
// }
|
||||
manifestPlaceholders = [
|
||||
OPENINSTALL_APPKEY : "uapywo",
|
||||
]
|
||||
multiDexEnabled true
|
||||
}
|
||||
|
||||
buildTypes {
|
||||
release {
|
||||
// TODO: Add your own signing config for the release build.
|
||||
// Signing with the debug keys for now, so `flutter run --release` works.
|
||||
signingConfig signingConfigs.debug
|
||||
ndk {
|
||||
//设置支持的SO库架构
|
||||
abiFilters 'armeabi-v7a', 'x86'//, 'arm64-v8a', 'x86', 'x86_64'
|
||||
}
|
||||
}
|
||||
|
||||
debug {
|
||||
signingConfig signingConfigs.debug
|
||||
ndk {
|
||||
abiFilters "armeabi","armeabi-v7a","arm64-v8a", "x86"
|
||||
//设置支持的SO库架构
|
||||
// abiFilters 'armeabi-v7a', 'x86'//, 'arm64-v8a', 'x86', 'x86_64'
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
signingConfigs {
|
||||
debug {
|
||||
keyAlias 'alias'
|
||||
keyPassword 'recook'
|
||||
// storeFile file('/Users/nansi/Desktop/Flutter/Project/recook/jks/recook.keystore')
|
||||
storeFile file('../../jks/recook.keystore');
|
||||
storePassword 'recook'
|
||||
}
|
||||
}
|
||||
|
||||
configurations.all {
|
||||
resolutionStrategy {
|
||||
resolutionStrategy.eachDependency { details ->
|
||||
if (details.requested.group == 'androidx.core') {
|
||||
details.useVersion "1.0.2"
|
||||
}
|
||||
if (details.requested.group == 'androidx.lifecycle') {
|
||||
details.useVersion "2.0.0"
|
||||
}
|
||||
if (details.requested.group == 'androidx.versionedparcelable') {
|
||||
details.useVersion "1.0.0"
|
||||
}
|
||||
if (details.requested.group == 'androidx.fragment') {
|
||||
details.useVersion "1.0.0"
|
||||
}
|
||||
if (details.requested.group == 'androidx.appcompat') {
|
||||
details.useVersion "1.0.1"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
flutter {
|
||||
source '../..'
|
||||
}
|
||||
|
||||
dependencies {
|
||||
testImplementation 'junit:junit:4.12'
|
||||
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
|
||||
androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0'
|
||||
}
|
||||
|
@ -0,0 +1,7 @@
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
package="com.akuhome.recook">
|
||||
<!-- Flutter needs it to communicate with the running application
|
||||
to allow setting breakpoints, to provide hot reload, etc.
|
||||
-->
|
||||
<uses-permission android:name="android.permission.INTERNET"/>
|
||||
</manifest>
|
@ -0,0 +1,81 @@
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
package="com.akuhome.recook">
|
||||
|
||||
<!-- io.flutter.app.FlutterApplication is an android.app.Application that
|
||||
calls FlutterMain.startInitialization(this); in its onCreate method.
|
||||
In most cases you can leave this as-is, but you if you want to provide
|
||||
additional functionality it is fine to subclass or reimplement
|
||||
FlutterApplication and put your custom class here. -->
|
||||
|
||||
<!--允许程序读写手机状态和身份-->
|
||||
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
|
||||
<!--允许程序访问CellID或WiFi热点来获取粗略的位置-->
|
||||
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
|
||||
<permission android:name="android.permission.INTERNET"/>
|
||||
<permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
|
||||
<permission android:name="android.permission.ACCESS_WIFI_STATE"/>
|
||||
<permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
|
||||
<permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
|
||||
<!--允许程序访问CellID或WiFi热点来获取粗略的位置-->
|
||||
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
|
||||
<uses-permission android:name="android.permission.CAMERA" />
|
||||
<!-- tools:replace="android:name"-->
|
||||
<!-- android:theme="@style/LaunchTheme" -->
|
||||
<application
|
||||
android:name="io.flutter.app.FlutterApplication"
|
||||
android:label="瑞库客"
|
||||
android:icon="@mipmap/ic_launcher"
|
||||
tools:replace="android:name">
|
||||
<meta-data android:name="com.amap.api.v2.apikey" android:value="7225bca14fe7493f9f469315a933f99c"/>
|
||||
|
||||
<activity
|
||||
android:name=".MainActivity"
|
||||
android:launchMode="singleTop"
|
||||
|
||||
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
|
||||
android:hardwareAccelerated="true"
|
||||
android:windowSoftInputMode="adjustResize">
|
||||
<!-- This keeps the window background of the activity showing
|
||||
until Flutter renders its first frame. It can be removed if
|
||||
there is no splash screen (such as the default splash screen
|
||||
defined in @style/LaunchTheme). -->
|
||||
<!-- <meta-data-->
|
||||
<!-- android:name="io.flutter.app.android.SplashScreenUntilFirstFrame"-->
|
||||
<!-- android:value="true" />-->
|
||||
<meta-data
|
||||
android:name="io.flutter.embedding.android.SplashScreenDrawable"
|
||||
android:resource="@drawable/launch_background" />
|
||||
<meta-data
|
||||
android:name="io.flutter.embedding.android.NormalTheme"
|
||||
android:resource="@style/NormalTheme"
|
||||
/>
|
||||
<meta-data
|
||||
android:name="flutterEmbedding"
|
||||
android:value="2" />
|
||||
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN"/>
|
||||
<category android:name="android.intent.category.LAUNCHER"/>
|
||||
</intent-filter>
|
||||
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.VIEW"/>
|
||||
<category android:name="android.intent.category.DEFAULT"/>
|
||||
<category android:name="android.intent.category.BROWSABLE"/>
|
||||
<data android:scheme="uapywo"/>
|
||||
</intent-filter>
|
||||
<!-- <intent-filter>-->
|
||||
<!-- <action android:name="android.intent.action.VIEW"/>-->
|
||||
<!-- <category android:name="android.intent.category.DEFAULT"/>-->
|
||||
<!-- <category android:name="android.intent.category.BROWSABLE"/>-->
|
||||
<!-- <data android:scheme="uapywo"/>-->
|
||||
<!-- </intent-filter>-->
|
||||
</activity>
|
||||
<activity
|
||||
android:name="com.yalantis.ucrop.UCropActivity"
|
||||
android:screenOrientation="portrait"
|
||||
android:theme="@style/Theme.AppCompat.Light.NoActionBar"/>
|
||||
<!-- <activity android:name="com.apptreesoftware.barcodescan.BarcodeScannerActivity"/>-->
|
||||
</application>
|
||||
</manifest>
|
After Width: | Height: | Size: 119 KiB |
After Width: | Height: | Size: 290 KiB |
@ -0,0 +1,62 @@
|
||||
package com.akuhome.recook;
|
||||
|
||||
//import android.os.Bundle;
|
||||
//import io.flutter.app.FlutterActivity;
|
||||
//import io.flutter.plugins.GeneratedPluginRegistrant;
|
||||
import android.os.Bundle;
|
||||
import android.os.PersistableBundle;
|
||||
import android.view.KeyEvent;
|
||||
import android.view.View;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import io.flutter.plugin.common.MethodCall;
|
||||
import io.flutter.embedding.android.FlutterActivity;
|
||||
import io.flutter.embedding.engine.FlutterEngine;
|
||||
import io.flutter.plugin.common.MethodChannel;
|
||||
import io.flutter.plugins.GeneratedPluginRegistrant;
|
||||
|
||||
|
||||
public class MainActivity extends FlutterActivity {
|
||||
// @Override
|
||||
// protected void onCreate(Bundle savedInstanceState) {
|
||||
// super.onCreate(savedInstanceState);
|
||||
// GeneratedPluginRegistrant.registerWith(this);
|
||||
// }
|
||||
|
||||
//通讯名称,回到手机桌面
|
||||
private final String CHANNEL = "android/back/desktop";
|
||||
@Override
|
||||
public void configureFlutterEngine(@NonNull FlutterEngine flutterEngine) {
|
||||
GeneratedPluginRegistrant.registerWith(flutterEngine);
|
||||
new MethodChannel(flutterEngine.getDartExecutor(), CHANNEL).setMethodCallHandler(
|
||||
new MethodChannel.MethodCallHandler() {
|
||||
@Override
|
||||
public void onMethodCall(@NonNull MethodCall call, @NonNull MethodChannel.Result result) {
|
||||
if (call.method.equals("backDesktop")) {
|
||||
result.success(true);
|
||||
moveTaskToBack(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
// @Override
|
||||
// protected void onCreate(Bundle savedInstanceState) {
|
||||
// super.onCreate(savedInstanceState);
|
||||
//// GeneratedPluginRegistrant.registerWith(this);
|
||||
// new MethodChannel(FlutterEngine.dart, CHANNEL).setMethodCallHandler(
|
||||
//// new MethodChannel(getFlutterView(), CHANNEL).setMethodCallHandler(
|
||||
// new MethodChannel.MethodCallHandler() {
|
||||
// @Override
|
||||
// public void onMethodCall(MethodCall methodCall, MethodChannel.Result result) {
|
||||
// if (methodCall.method.equals("backDesktop")) {
|
||||
// result.success(true);
|
||||
// moveTaskToBack(false);
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// );
|
||||
// }
|
||||
|
||||
}
|
@ -0,0 +1,74 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<vector
|
||||
android:height="108dp"
|
||||
android:width="108dp"
|
||||
android:viewportHeight="108"
|
||||
android:viewportWidth="108"
|
||||
xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<path android:fillColor="#008577"
|
||||
android:pathData="M0,0h108v108h-108z"/>
|
||||
<path android:fillColor="#00000000" android:pathData="M9,0L9,108"
|
||||
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
|
||||
<path android:fillColor="#00000000" android:pathData="M19,0L19,108"
|
||||
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
|
||||
<path android:fillColor="#00000000" android:pathData="M29,0L29,108"
|
||||
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
|
||||
<path android:fillColor="#00000000" android:pathData="M39,0L39,108"
|
||||
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
|
||||
<path android:fillColor="#00000000" android:pathData="M49,0L49,108"
|
||||
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
|
||||
<path android:fillColor="#00000000" android:pathData="M59,0L59,108"
|
||||
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
|
||||
<path android:fillColor="#00000000" android:pathData="M69,0L69,108"
|
||||
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
|
||||
<path android:fillColor="#00000000" android:pathData="M79,0L79,108"
|
||||
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
|
||||
<path android:fillColor="#00000000" android:pathData="M89,0L89,108"
|
||||
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
|
||||
<path android:fillColor="#00000000" android:pathData="M99,0L99,108"
|
||||
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
|
||||
<path android:fillColor="#00000000" android:pathData="M0,9L108,9"
|
||||
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
|
||||
<path android:fillColor="#00000000" android:pathData="M0,19L108,19"
|
||||
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
|
||||
<path android:fillColor="#00000000" android:pathData="M0,29L108,29"
|
||||
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
|
||||
<path android:fillColor="#00000000" android:pathData="M0,39L108,39"
|
||||
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
|
||||
<path android:fillColor="#00000000" android:pathData="M0,49L108,49"
|
||||
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
|
||||
<path android:fillColor="#00000000" android:pathData="M0,59L108,59"
|
||||
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
|
||||
<path android:fillColor="#00000000" android:pathData="M0,69L108,69"
|
||||
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
|
||||
<path android:fillColor="#00000000" android:pathData="M0,79L108,79"
|
||||
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
|
||||
<path android:fillColor="#00000000" android:pathData="M0,89L108,89"
|
||||
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
|
||||
<path android:fillColor="#00000000" android:pathData="M0,99L108,99"
|
||||
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
|
||||
<path android:fillColor="#00000000" android:pathData="M19,29L89,29"
|
||||
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
|
||||
<path android:fillColor="#00000000" android:pathData="M19,39L89,39"
|
||||
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
|
||||
<path android:fillColor="#00000000" android:pathData="M19,49L89,49"
|
||||
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
|
||||
<path android:fillColor="#00000000" android:pathData="M19,59L89,59"
|
||||
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
|
||||
<path android:fillColor="#00000000" android:pathData="M19,69L89,69"
|
||||
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
|
||||
<path android:fillColor="#00000000" android:pathData="M19,79L89,79"
|
||||
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
|
||||
<path android:fillColor="#00000000" android:pathData="M29,19L29,89"
|
||||
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
|
||||
<path android:fillColor="#00000000" android:pathData="M39,19L39,89"
|
||||
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
|
||||
<path android:fillColor="#00000000" android:pathData="M49,19L49,89"
|
||||
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
|
||||
<path android:fillColor="#00000000" android:pathData="M59,19L59,89"
|
||||
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
|
||||
<path android:fillColor="#00000000" android:pathData="M69,19L69,89"
|
||||
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
|
||||
<path android:fillColor="#00000000" android:pathData="M79,19L79,89"
|
||||
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
|
||||
</vector>
|
@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Modify this file to customize your launch splash screen -->
|
||||
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:drawable="@android:color/white" />
|
||||
|
||||
<!-- You can insert your own image assets here -->
|
||||
<!-- <item>-->
|
||||
<!-- <bitmap-->
|
||||
<!-- android:gravity="center"-->
|
||||
<!-- android:src="@mipmap/ic_launcher" />-->
|
||||
<!-- </item>-->
|
||||
</layer-list>
|
@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<background android:drawable="@drawable/ic_launcher_background"/>
|
||||
<foreground android:drawable="@mipmap/ic_launcher_foreground"/>
|
||||
</adaptive-icon>
|
@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<background android:drawable="@drawable/ic_launcher_background"/>
|
||||
<foreground android:drawable="@mipmap/ic_launcher_foreground"/>
|
||||
</adaptive-icon>
|
After Width: | Height: | Size: 11 KiB |
After Width: | Height: | Size: 7.1 KiB |
After Width: | Height: | Size: 16 KiB |
After Width: | Height: | Size: 9.2 KiB |
After Width: | Height: | Size: 11 KiB |
After Width: | Height: | Size: 4.0 KiB |
After Width: | Height: | Size: 8.3 KiB |
After Width: | Height: | Size: 4.9 KiB |
After Width: | Height: | Size: 11 KiB |
After Width: | Height: | Size: 11 KiB |
After Width: | Height: | Size: 24 KiB |
After Width: | Height: | Size: 14 KiB |
After Width: | Height: | Size: 11 KiB |
After Width: | Height: | Size: 20 KiB |
After Width: | Height: | Size: 43 KiB |
After Width: | Height: | Size: 25 KiB |
After Width: | Height: | Size: 11 KiB |
After Width: | Height: | Size: 29 KiB |
After Width: | Height: | Size: 66 KiB |
After Width: | Height: | Size: 38 KiB |
After Width: | Height: | Size: 11 KiB |
@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<color name="ic_launcher_background">#FFFFFF</color>
|
||||
</resources>
|
@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<style name="NormalTheme" parent="@android:style/Theme.Black.NoTitleBar">
|
||||
<!-- <style name="LaunchTheme" parent="@android:style/Theme.Black.NoTitleBar">-->
|
||||
<!-- Show a splash screen on the activity. Automatically removed when
|
||||
Flutter draws its first frame -->
|
||||
<item name="android:windowBackground">@drawable/launch_background</item>
|
||||
</style>
|
||||
</resources>
|
@ -0,0 +1,7 @@
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
package="com.akuhome.recook">
|
||||
<!-- Flutter needs it to communicate with the running application
|
||||
to allow setting breakpoints, to provide hot reload, etc.
|
||||
-->
|
||||
<uses-permission android:name="android.permission.INTERNET"/>
|
||||
</manifest>
|
@ -0,0 +1,33 @@
|
||||
buildscript {
|
||||
ext.kotlin_version = '1.3.10'
|
||||
repositories {
|
||||
google()
|
||||
jcenter()
|
||||
}
|
||||
|
||||
dependencies {
|
||||
classpath 'com.android.tools.build:gradle:3.5.0'
|
||||
// 注册MobSDK
|
||||
classpath "com.mob.sdk:MobSDK:2018.0319.1724"
|
||||
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
|
||||
}
|
||||
}
|
||||
|
||||
allprojects {
|
||||
repositories {
|
||||
google()
|
||||
jcenter()
|
||||
}
|
||||
}
|
||||
|
||||
rootProject.buildDir = '../build'
|
||||
subprojects {
|
||||
project.buildDir = "${rootProject.buildDir}/${project.name}"
|
||||
}
|
||||
subprojects {
|
||||
project.evaluationDependsOn(':app')
|
||||
}
|
||||
|
||||
task clean(type: Delete) {
|
||||
delete rootProject.buildDir
|
||||
}
|
@ -0,0 +1,4 @@
|
||||
org.gradle.jvmargs=-Xmx2g
|
||||
android.enableJetifier=true
|
||||
android.useAndroidX=true
|
||||
android.enableR8=true
|
@ -0,0 +1,6 @@
|
||||
#Wed Sep 25 15:20:19 CST 2019
|
||||
distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip
|
@ -0,0 +1,15 @@
|
||||
include ':app'
|
||||
|
||||
def flutterProjectRoot = rootProject.projectDir.parentFile.toPath()
|
||||
|
||||
def plugins = new Properties()
|
||||
def pluginsFile = new File(flutterProjectRoot.toFile(), '.flutter-plugins')
|
||||
if (pluginsFile.exists()) {
|
||||
pluginsFile.withReader('UTF-8') { reader -> plugins.load(reader) }
|
||||
}
|
||||
|
||||
plugins.each { name, path ->
|
||||
def pluginDirectory = flutterProjectRoot.resolve(path).resolve('android').toFile()
|
||||
include ":$name"
|
||||
project(":$name").projectDir = pluginDirectory
|
||||
}
|
@ -0,0 +1 @@
|
||||
include ':app'
|
@ -0,0 +1,58 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<DevInfor>
|
||||
<SinaWeibo AppKey="3484799074" AppSecret="0cc08d31b4d63dc81fbb7a2559999fb3" RedirectUrl="https://www.reecook.cn" />
|
||||
<TencentWeibo Enable="false" />
|
||||
<Douban Enable="false" />
|
||||
<QZone AppId="101876843" AppKey="6f367bfad98978e22c2e11897dd74f00" />
|
||||
<Renren Enable="false" />
|
||||
<KaiXin Enable="false" />
|
||||
<Facebook Enable="false" />
|
||||
<Twitter Enable="false" />
|
||||
<Evernote Enable="false" />
|
||||
<FourSquare Enable="false" />
|
||||
<GooglePlus Enable="false" />
|
||||
<Instagram Enable="false" />
|
||||
<LinkedIn Enable="false" />
|
||||
<Tumblr Enable="false" />
|
||||
<Email Enable="false" />
|
||||
<ShortMessage Enable="false" />
|
||||
<Wechat Enable="false" />
|
||||
<WechatMoments Enable="false" />
|
||||
<QQ AppId="101876843" AppKey="6f367bfad98978e22c2e11897dd74f00" />
|
||||
<Instapaper Enable="false" />
|
||||
<Pocket Enable="false" />
|
||||
<YouDao Enable="false" />
|
||||
<Pinterest Enable="false" />
|
||||
<Flickr Enable="false" />
|
||||
<Dropbox Enable="false" />
|
||||
<VKontakte Enable="false" />
|
||||
<WechatFavorite Enable="false" />
|
||||
<Yixin Enable="false" />
|
||||
<YixinMoments Enable="false" />
|
||||
<Mingdao Enable="false" />
|
||||
<Line Enable="false" />
|
||||
<WhatsApp Enable="false" />
|
||||
<KakaoTalk Enable="false" />
|
||||
<KakaoStory Enable="false" />
|
||||
<FacebookMessenger Enable="false" />
|
||||
<Alipay Enable="false" />
|
||||
<AlipayMoments Enable="false" />
|
||||
<Dingding Enable="false" />
|
||||
<Youtube Enable="false" />
|
||||
<Meipai Enable="false" />
|
||||
<Telegram Enable="false" />
|
||||
<Cmcc Enable="false" />
|
||||
<Reddit Enable="false" />
|
||||
<Telecom Enable="false" />
|
||||
<Accountkit Enable="false" />
|
||||
<Douyin Enable="false" />
|
||||
<Wework Enable="false" />
|
||||
<HWAccount Enable="false" />
|
||||
<Oasis Enable="false" />
|
||||
<XMAccount Enable="false" />
|
||||
<SnapChat Enable="false" />
|
||||
<Kuaishou Enable="false" />
|
||||
<Littleredbook Enable="false" />
|
||||
<Watermelonvideo Enable="false" />
|
||||
<Tiktok Enable="false" />
|
||||
</DevInfor>
|
After Width: | Height: | Size: 43 KiB |
After Width: | Height: | Size: 3.6 KiB |
After Width: | Height: | Size: 4.9 KiB |
After Width: | Height: | Size: 23 KiB |
After Width: | Height: | Size: 5.3 KiB |
After Width: | Height: | Size: 4.6 KiB |
After Width: | Height: | Size: 5.9 KiB |
After Width: | Height: | Size: 4.5 KiB |
After Width: | Height: | Size: 3.4 KiB |
After Width: | Height: | Size: 4.1 KiB |
After Width: | Height: | Size: 4.4 KiB |
After Width: | Height: | Size: 3.4 KiB |
After Width: | Height: | Size: 4.3 KiB |
After Width: | Height: | Size: 6.0 KiB |
After Width: | Height: | Size: 5.6 KiB |
After Width: | Height: | Size: 4.6 KiB |
After Width: | Height: | Size: 5.9 KiB |
After Width: | Height: | Size: 5.6 KiB |
After Width: | Height: | Size: 4.6 KiB |
After Width: | Height: | Size: 1.5 KiB |
After Width: | Height: | Size: 4.8 KiB |
After Width: | Height: | Size: 9.7 KiB |
After Width: | Height: | Size: 11 KiB |
After Width: | Height: | Size: 22 KiB |
After Width: | Height: | Size: 4.5 KiB |
After Width: | Height: | Size: 8.0 KiB |
After Width: | Height: | Size: 17 KiB |
After Width: | Height: | Size: 418 B |
After Width: | Height: | Size: 2.2 KiB |
After Width: | Height: | Size: 730 B |
After Width: | Height: | Size: 9.4 KiB |
After Width: | Height: | Size: 1.3 KiB |
After Width: | Height: | Size: 8.0 KiB |
After Width: | Height: | Size: 10 KiB |
After Width: | Height: | Size: 9.7 KiB |
After Width: | Height: | Size: 32 KiB |
After Width: | Height: | Size: 5.2 KiB |
After Width: | Height: | Size: 23 KiB |
After Width: | Height: | Size: 2.4 KiB |
After Width: | Height: | Size: 1.8 KiB |
After Width: | Height: | Size: 1.2 KiB |
After Width: | Height: | Size: 1.9 KiB |
After Width: | Height: | Size: 1.6 KiB |
After Width: | Height: | Size: 1.6 KiB |
After Width: | Height: | Size: 1.8 KiB |
After Width: | Height: | Size: 1.8 KiB |
After Width: | Height: | Size: 2.0 KiB |
After Width: | Height: | Size: 2.0 KiB |
After Width: | Height: | Size: 1.8 KiB |
After Width: | Height: | Size: 1.8 KiB |
After Width: | Height: | Size: 1.9 KiB |
After Width: | Height: | Size: 1.9 KiB |
After Width: | Height: | Size: 19 KiB |
After Width: | Height: | Size: 43 KiB |
After Width: | Height: | Size: 5.3 KiB |