美文网首页
flutter使用百川SDK

flutter使用百川SDK

作者: 晓函 | 来源:发表于2020-06-02 19:17 被阅读0次

开通权限

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

image.png

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压缩
        }
    }

相关文章

网友评论

      本文标题:flutter使用百川SDK

      本文链接:https://www.haomeiwen.com/subject/lsspzhtx.html