开通权限
image.png百川官网下载安全图片
image.png分为ios版本和android版本,
ios BundleID直接写你flutter app的BundleID,我的是com.tangxxx.app
android需要你用keytools生成带签名的apk,然后上传。详情请看https://www.jianshu.com/p/398d41128b02
下载yw_1222.jpeg后图片名字必须改为yw_1222_baichuan.jpg
android添加安全图片
复制安全图片到android/app/src/main/res/drawable/yw_1222_baichuan.jpg
ios添加安全图片
复制安全图片到ios/yw_1222_baichuan.jpg,
用xcode添加资源文件,用xcode打开ios下的Runner.xcodeproj
image.png
选择add other,选取ios目录下的yw_1222_baichuan.jpg,确定。
使用flutter_alibc这个库
flutter_alibc:https://pub.dev/packages/flutter_alibc
在pubspec.yaml引用
flutter_alibc: ^0.0.21-nullsafety
ios引入百川SDK
1、打开ios/podfile,在最后面添加
# 版本最低为 13.0
platform :ios, '13.7'
#官方源
source 'https://github.com/CocoaPods/Specs'
#使用阿里源,才会自动从阿里下载百川依赖包
source 'http://repo.baichuan-ios.taobao.com/baichuanSDK/AliBCSpecs.git'
2、然后删除podfile.lock文件,
3、 命令行通过pod安装
a、添加阿里百川的源(这样才会自动下载百川需要的依赖包),
b、pod update命令会根据flutter_alibc这个包安装需要的依赖包
pod repo add AliBCSpecs http://repo.baichuan-ios.taobao.com/baichuanSDK/AliBCSpecs.git
pod update
c、如果pod update报错,
如果报错
注释掉podfile中的 use_frameworks!
(use_frameworks是表示使用动态库,注释掉就会使用静态库)
注释掉
pod安装依赖成功截图:
image.png
android引入百川SDK
打开android/app/src/main/AndroidManifest.xml,在application标签中加入子标签
<!--阿里百川,一定要用singleTask,这样登陆状态才在二次授权免登-->
<activity android:name="com.wxwx.flutter_alibc.web.WebViewActivity" android:launchMode="singleTask"></activity>
如果flutter build apk 的时候提示建议加入tools:replace="android:label"
就打开AndroidManifest.xml,
<application标签加入属性 xmlns:tools="http://schemas.android.com/tools" tools:replace="android:label"
如下:
<application
android:label="糖喵"
android:icon="@mipmap/ic_launcher"
xmlns:tools="http://schemas.android.com/tools"
tools:replace="android:label"
>
。。。省略
<!--阿里百川,一定要用singleTask,这样登陆状态才在二次授权免登-->
<activity android:name="com.wxwx.flutter_alibc.web.WebViewActivity" android:launchMode="singleTask">
<intent-filter>
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
</application>
android错误一:build的时候提示错误:
image.png这是因为新版本gradle6.x编译时,会强制校验远程仓库是否存在.pom文件, 阿里百川仓库目前缺少.pom文件, 因此我们需要使用5.6较低版本gradle
修改android/gradle/wrapper.properties,使用gradle5.6.4
#注释掉新版本gradle
#distributionUrl=https\://services.gradle.org/distributions/gradle-6.7-all.zip
#新版本gradle编译时,会强制校验远程仓库是否存在.pom文件, 阿里百川仓库目前缺少.pom文件, 因此目前先使用较5.6低版本gradle
distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.4-all.zip
修改android/build.gradle,使用对应低版本gradle tool和kotlin
buildscript {
//ext.kotlin_version = '1.5.21'//高版本,注释掉
ext.kotlin_version = '1.4.31'
repositories {
google()
mavenCentral()
}
dependencies {
//classpath 'com.android.tools.build:gradle:4.1.0'//对应高版本gradle6.7,注释掉
classpath 'com.android.tools.build:gradle:3.6.0'//对应gradle5.6.4
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
如果想知道更多gradle和gradle plugin插件对应版本,打开
https://developer.android.google.cn/studio/releases/gradle-plugin#groovy
android错误二:
flutter run AlibcInit成功。flutter build apk后运行app,AlibcInit失败,
原因是build后yw_1222_baichuan.jpg安全图片自动被压缩和混淆后,图片二进制数据发生变化,所以获取到的数据错误,签名也对不上了。
解决:
在android/app/build.gradle关闭混淆和压缩
buildTypes {
debug {
signingConfig signingConfigs.release
}
release {
signingConfig signingConfigs.release
minifyEnabled false //禁用混淆
shrinkResources false //禁用r8压缩
}
}
网友评论