@@ -29,6 +29,7 @@ def releaseTime() { | |||||
} | } | ||||
apply plugin: 'com.android.application' | apply plugin: 'com.android.application' | ||||
apply plugin: 'com.mob.sdk' | |||||
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle" | apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle" | ||||
@@ -91,50 +92,50 @@ android { | |||||
// | // | ||||
// // 签名配置 | // // 签名配置 | ||||
// signingConfigs { | |||||
// // 智夜生活 | |||||
// zhiying { | |||||
// storeFile file('zhiying.jks') | |||||
// storePassword 'zhioscom' | |||||
// keyAlias 'zysh' | |||||
// keyPassword 'zhioscom' | |||||
// v1SigningEnabled true | |||||
// v2SigningEnabled true | |||||
// } | |||||
// | |||||
// } | |||||
// | |||||
// flavorDimensions "app" | |||||
// | |||||
// | |||||
// // 应用信息配置 | |||||
// productFlavors { | |||||
// // 智夜生活 | |||||
// zhiying { | |||||
// applicationId "cn.zhios.zhiying" | |||||
// versionCode 1 | |||||
// dimension "app" | |||||
// versionName '1.0.0' | |||||
// // 签名信息 | |||||
// signingConfig signingConfigs.zhiying | |||||
// } | |||||
// } | |||||
// | |||||
// // 打包脚本 | |||||
// android.applicationVariants.all { variant -> | |||||
// if (variant.buildType.name != "debug") { | |||||
// variant.getPackageApplicationProvider().get().outputDirectory = new File(project.rootDir.absolutePath + "/app/build/outputs/apk") | |||||
// } | |||||
// | |||||
// variant.outputs.all { output -> | |||||
// def outputFile = output.outputFile | |||||
// if (outputFile != null && outputFile.name.endsWith('.apk')) { | |||||
// //这里修改apk文件名 | |||||
// def fileName = "${variant.productFlavors[0].name}_${releaseTime()}01_&V${variant.productFlavors[0].versionCode}.apk" | |||||
// outputFileName = fileName | |||||
// } | |||||
// } | |||||
// } | |||||
signingConfigs { | |||||
// 智夜生活 | |||||
zhiying { | |||||
storeFile file('zhiying.jks') | |||||
storePassword 'zhioscom' | |||||
keyAlias 'zysh' | |||||
keyPassword 'zhioscom' | |||||
v1SigningEnabled true | |||||
v2SigningEnabled true | |||||
} | |||||
} | |||||
flavorDimensions "app" | |||||
// 应用信息配置 | |||||
productFlavors { | |||||
// 智夜生活 | |||||
zhiying { | |||||
applicationId "cn.zhios.zhiying" | |||||
versionCode 1 | |||||
dimension "app" | |||||
versionName '1.0.0' | |||||
// 签名信息 | |||||
signingConfig signingConfigs.zhiying | |||||
} | |||||
} | |||||
// 打包脚本 | |||||
android.applicationVariants.all { variant -> | |||||
if (variant.buildType.name != "debug") { | |||||
variant.getPackageApplicationProvider().get().outputDirectory = new File(project.rootDir.absolutePath + "/app/build/outputs/apk") | |||||
} | |||||
variant.outputs.all { output -> | |||||
def outputFile = output.outputFile | |||||
if (outputFile != null && outputFile.name.endsWith('.apk')) { | |||||
//这里修改apk文件名 | |||||
def fileName = "${variant.productFlavors[0].name}_${releaseTime()}01_&V${variant.productFlavors[0].versionCode}.apk" | |||||
outputFileName = fileName | |||||
} | |||||
} | |||||
} | |||||
configurations.all { | configurations.all { | ||||
resolutionStrategy.eachDependency { DependencyResolveDetails details -> | resolutionStrategy.eachDependency { DependencyResolveDetails details -> | ||||
@@ -162,6 +163,25 @@ dependencies { | |||||
} | } | ||||
MobSDK { | |||||
appKey "30dc33054b635" | |||||
appSecret "396e98c293130c9976fb7428b6b434d6" | |||||
ShareSDK { | |||||
// platform configuration information | |||||
devInfo { | |||||
QQ { | |||||
appId "1111030588" | |||||
appKey "XoHKlrBybXy7ORBt" | |||||
shareByAppClient true | |||||
bypassApproval false | |||||
enable true | |||||
} | |||||
} | |||||
} | |||||
} | |||||
// 注册SecVerify的相关信息 | // 注册SecVerify的相关信息 | ||||
//MobSDK { | //MobSDK { | ||||
//// appKey "2ed488d929488" | //// appKey "2ed488d929488" | ||||
@@ -8,10 +8,10 @@ | |||||
FlutterApplication and put your custom class here. --> | FlutterApplication and put your custom class here. --> | ||||
<application | <application | ||||
android:name="io.flutter.app.FlutterApplication" | android:name="io.flutter.app.FlutterApplication" | ||||
android:label="zhiying_base_widget_example" | |||||
android:label="@string/app_name" | |||||
android:icon="@mipmap/ic_launcher" | android:icon="@mipmap/ic_launcher" | ||||
android:usesCleartextTraffic="true" | android:usesCleartextTraffic="true" | ||||
tools:replace="android:label"> | |||||
tools:replace="android:name"> | |||||
<activity | <activity | ||||
android:name=".MainActivity" | android:name=".MainActivity" | ||||
android:launchMode="singleTop" | android:launchMode="singleTop" | ||||
@@ -33,4 +33,8 @@ | |||||
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> | <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> | ||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> | <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> | ||||
<uses-permission android:name="android.permission.INTERNET"/> | |||||
</manifest> | </manifest> |
@@ -0,0 +1,4 @@ | |||||
<?xml version="1.0" encoding="utf-8"?> | |||||
<resources> | |||||
<string name="app_name">智莺生活</string> | |||||
</resources> |
@@ -40,7 +40,7 @@ class _SearchHistoryTagWidgetState extends State<SearchHistoryTagWidget> { | |||||
/// 点击历史标签 | /// 点击历史标签 | ||||
void _historyTagClick(String tag) { | void _historyTagClick(String tag) { | ||||
if (!EmptyUtil.isEmpty(tag)) { | if (!EmptyUtil.isEmpty(tag)) { | ||||
Navigator.push(context, MaterialPageRoute(builder: (_) => SearchResultPage({'keywords': tag ?? ''}))); | |||||
Navigator.push(context, MaterialPageRoute(builder: (_) => SearchResultPage({'keywords': tag ?? '', 'tag': 'search_page'}))); | |||||
} | } | ||||
} | } | ||||
@@ -31,7 +31,7 @@ class SearchHotTagWidget extends StatelessWidget { | |||||
await Provider.of<SearchTagNotifier>(context, listen: false).addTag(model.keyword); | await Provider.of<SearchTagNotifier>(context, listen: false).addTag(model.keyword); | ||||
Navigator.push(context, MaterialPageRoute(builder: (_) => SearchResultPage({'keywords': model?.keyword ?? ''}))); | |||||
Navigator.push(context, MaterialPageRoute(builder: (_) => SearchResultPage({'keywords': model?.keyword ?? '', 'tag': 'search_page'}))); | |||||
} | } | ||||
} | } | ||||
@@ -40,7 +40,7 @@ class _SearchInputWidgetState extends State<SearchInputWidget> { | |||||
/// TODO 保存历史标签 | /// TODO 保存历史标签 | ||||
if (!EmptyUtil.isEmpty(content)) { | if (!EmptyUtil.isEmpty(content)) { | ||||
await Provider.of<SearchTagNotifier>(context, listen: false).addTag(content); | await Provider.of<SearchTagNotifier>(context, listen: false).addTag(content); | ||||
Navigator.push(context, MaterialPageRoute(builder: (_) => SearchResultPage({'keywords': content}))); | |||||
Navigator.push(context, MaterialPageRoute(builder: (_) => SearchResultPage({'keywords': content, 'tag': 'search_page'}))); | |||||
}else{ | }else{ | ||||
Fluttertoast.showToast(msg: '输入内容不能为空!'); | Fluttertoast.showToast(msg: '输入内容不能为空!'); | ||||
} | } | ||||
@@ -190,6 +190,7 @@ class _SearchInputWidgetState extends State<SearchInputWidget> { | |||||
style: TextStyle(fontSize: 14, color: HexColor.fromHex('#333333')), | style: TextStyle(fontSize: 14, color: HexColor.fromHex('#333333')), | ||||
decoration: InputDecoration( | decoration: InputDecoration( | ||||
filled: false, | filled: false, | ||||
contentPadding: const EdgeInsets.only(left: 0, right: 0, bottom: 12, top: 0), | |||||
// focusColor: Colors.transparent, | // focusColor: Colors.transparent, | ||||
// fillColor: Colors.transparent, | // fillColor: Colors.transparent, | ||||
border: InputBorder.none, | border: InputBorder.none, | ||||
@@ -37,7 +37,7 @@ class _SearchTabWidgetState extends State<SearchTabWidget> { | |||||
/// 联想列表的item点击事件 | /// 联想列表的item点击事件 | ||||
_onThinkItemClick(SearchThinkModel model){ | _onThinkItemClick(SearchThinkModel model){ | ||||
Navigator.push(context, MaterialPageRoute( | Navigator.push(context, MaterialPageRoute( | ||||
builder: (_)=> SearchResultPage(model.toJson()) | |||||
builder: (_)=> SearchResultPage(model.toJson()..['tag'] = 'search_page') | |||||
)); | )); | ||||
} | } | ||||
@@ -153,6 +153,7 @@ class _SearchResultInputWidgetState extends State<SearchResultInputWidget> { | |||||
style: TextStyle(fontSize: 14, color: HexColor.fromHex('#333333')), | style: TextStyle(fontSize: 14, color: HexColor.fromHex('#333333')), | ||||
decoration: InputDecoration( | decoration: InputDecoration( | ||||
filled: false, | filled: false, | ||||
contentPadding: const EdgeInsets.only(left: 0, right: 0, top: 0, bottom: 12), | |||||
// focusColor: Colors.transparent, | // focusColor: Colors.transparent, | ||||
// fillColor: Colors.transparent, | // fillColor: Colors.transparent, | ||||
border: InputBorder.none, | border: InputBorder.none, | ||||