更新记录

1.1.0(2019-12-30)

更新ios插件

1.0.2(2019-12-10)

完善文档以及优化


平台兼容性

Android Android CPU类型 iOS
armeabi-v7a:未测试,arm64-v8a:未测试,x86:未测试

原生插件通用使用流程:

  1. 购买插件,选择该插件绑定的项目。
  2. 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
  3. 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
  4. 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
  5. 开发完毕后正式云打包

付费原生插件目前不支持离线打包。
Android 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/android
iOS 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/ios

注意事项:使用HBuilderX2.7.14以下版本,如果同一插件且同一appid下购买并绑定了多个包名,提交云打包界面提示包名绑定不一致时,需要在HBuilderX项目中manifest.json->“App原生插件配置”->”云端插件“列表中删除该插件重新选择


百川电商插件使用说明

基于百川SDK进行的操作

百川SDK-Android接入文档 首先请知晓百川插件的集成
该插件目前只支持android版本,后续ios版本将继续更新


/**
options参数: null
*/

@JSMethod(uiThread = true)
public void init(JSONObject options, final JSCallback jsCallback) {

 }

/**
options参数: null
*/

@JSMethod(uiThread = true)
public void login(JSONObject options, final JSCallback jsCallback) {

 }

/**
options参数: null
*/

@JSMethod(uiThread = true)
public void logout(JSONObject options, final JSCallback jsCallback) {

 }
/**
 options参数:pid alibcFailModeType  open_type   client_type   back_url  url
*/
@JSMethod(uiThread = true)
public void openByUrl(JSONObject options, final JSCallback jsCallback) {

 }
/**
options参数:page_type       pid    unionId   subPid    alibcFailModeType
            item_id     shop_id    open_type      client_type    back_url
            adzoneId   taokeAppkey   sellerId  extraParams1   extraParams2  
            extraParams3   extraParams4   extraParams5
*/
@JSMethod(uiThread = true)
public void openByCode(JSONObject options, final JSCallback jsCallback) {

 }

/**
options参数:pid alibcFailModeType  open_type   client_type   back_url  url
*/
@JSMethod(uiThread = true)
public void openWebview(JSONObject options, final JSCallback jsCallback) {

 }
/**
options参数:null
*/
@JSMethod(uiThread = true)
public void getUserInfo(JSONObject options, final JSCallback jsCallback) {

 }

/**
options参数: isSyncForTaoke(boolean值)
*/

@JSMethod(uiThread = true)
public void setIsSyncForTaoke(JSONObject options, final JSCallback jsCallback) {

 }

/**
options参数: typeName   channelName
*/

@JSMethod(uiThread = true)
public void setChannel(JSONObject options, final JSCallback jsCallback) {

 }

/**
options参数: isvVersion
*/

@JSMethod(uiThread = true)
public void setISVVersion(JSONObject options, final JSCallback jsCallback) {

 }
uniapp所需提供的options字段
/**
     * 必填
     * 1:AlibcDetailPage  2:AlibcShopPage
     */
    public static String PAGE_TYPE = "page_type";

    /**
     * 通过URL打开时 必填
     */
    public static String URL = "url";
    /**
     * 选填
     */
    public static String PID = "pid";
    /**
     * 选填
     */
    public static String UNION_ID = "unionId";
    /**
     * 选填
     */
    public static String SUB_ID = "subPid";
    /**
     * 必填
     */
    public static String ALIBC_FAIL_MODE_TYPE = "alibcFailModeType";
    /**
     * 详情页面id 如果 PAGE_TYPE返回的参数为1时填写
     */
    public static String ITEM_ID = "item_id";
    /**
     * 店铺id 如果 PAGE_TYPE返回的参数为2时填写
     */
    public static String SHOP_Id = "shop_id";
    /**
     * 选填
     * 页面打开方式
     */
    public static String OPEN_TYPE = "open_type";
    /**
     * 选填
     * 唤端类型
     */
    public static String CLIENT_TYPE = "client_type";
    /**
     * 选填
     * 唤端返回的scheme
     */
    public static String BACK_URL = "back_url";
    /**
     * 选填
     * 如果走adzoneId的方式分佣打点
     * 需要在extraParams中显式传入TAOKE_APP_KEY,否则打点失败;
     */
    public static String ADZONE_ID = "adzoneId";
    /**
     * 选填
     * 如果走adzoneId的方式分佣打点
     * 需要传入TAOKE_APP_KEY,否则打点失败;
     */
    public static String TAOKE_APP_KEY = "taokeAppkey";
    /**
     * 选填
     * 如果是打开店铺页面(shop),
     * 需要传入sellerId,否则同步打点转链失败)
     */
    public static String SELLER_ID = "sellerId";
    /**
     * 选填
     * 额外参数1 内容为string类型
     */
    public static String EXTRA_PARAMS1 = "extraParams1";
    /**
     * 选填
     * 额外参数2 内容为string类型
     */
    public static String EXTRA_PARAMS2 = "extraParams2";
    /**
     * 选填
     * 额外参数3 内容为string类型
     */
    public static String EXTRA_PARAMS3 = "extraParams3";
    /**
     * 选填
     * 额外参数4 内容为string类型
     */
    public static String EXTRA_PARAMS4 = "extraParams4";
    /**
     * 选填
     * 额外参数5 内容为string类型
     */
    public static String EXTRA_PARAMS5 = "extraParams5";

    /**
     * 提供配置文件和全局接口两种形式,全局接口优先,没有配置时以服务端下发的配置为准
     * 设置是否使用同步淘客打点。true:使用淘客同步打点;false:关闭同步打点,使用异步打点;
     * 注意:初始化完成后调用才能生效
     * * @param isSyncForTaoke(默认为false)
     * 返回同步淘客打点策略是否设置成功
     */
    public static String IS_SYNC_FOR_TAOKE = "isSyncForTaoke"; //boolean值

    /**
     * 设置渠道信息(如果有特殊渠道专享价,需要设置,默认不要使用)
     * 注意:初始化完成后调用才能生效
     * @param typeName : 渠道类型(默认为:0)
     * @param channelName : 渠道名称(默认为:null)
     */
    public static String TYPE_NAME="typeName";
    public static String CHANNEL_NAME="channelName";

    /**
     * isvVersion
     * 设置isv版本
     * 提供isvcode全局接口
     * 设置isv的版本 ,默认1.0.0
     * 注意:初始化完成后调用才能生效
     * @param isvVersion (默认1.0.0)
     * @return 返回是否设置成功
     */
    public static String ISV_VERSION="isvVersion";  
android返回给uniapp的jsCallback字段内容
login==============>success:type("ok")  username(String)  result(int)  nickname(String)
      ==============>failure:type("error") msg(String);

logout==============>success:type("ok")  msg(String)
      ==============>failure:type("error") msg(String)

openByCode==============>success:type("ok")  msg(AlibcTradeResult)
      ==============>failure:type("error") msg(String)

openByUrl==============>success:type("ok")  msg(AlibcTradeResult)
      ==============>failure:type("error") msg(String)
测试模版代码(在引入插件之后可使用该模版使用)
<template>
    <view>

        <button @click="init">百川账号初始化</button>
        <button @click="login">百川账号登录</button>
        <button @click="logout">百川账号登出</button>
        <button @click="openByUrl">通过Url打开</button>
        <button @click="openByCode">通过Code打开</button>
        <button @click="openWebview">打开WebView</button>

        <view class="msg">{{showmsg}}</view>
    </view>
</template>
<script>
    const modal = uni.requireNativePlugin('modal');
    const baichuanModel = uni.requireNativePlugin('kevin_baichuan');
    // const baichuanModel = uni.requireNativePlugin('kevin910_BaichuanModule');

    export default {
        data() {
            return {
                showmsg: '暂无数据'
            }
        },
        methods: {
            init(){
                this.showmsg = "init";
                baichuanModel.init(null,
                        result => {
                            const msg = JSON.stringify(result);
                            this.showmsg = msg;
                            switch (result.type) {
                                case 'ok':
                                    modal.toast({
                                        message: '登录成功',
                                        duration: 1.5,
                                    });
                                    break;
                                case 'error':
                                    modal.toast({
                                        message: '登录失败',
                                        duration: 1.5,
                                    });
                                    break;
                            }
                        }
                    )
                },
                login() {
                    this.showmsg = "login";
                baichuanModel.login(null,
                    result => {
                        const msg = JSON.stringify(result);
                        this.showmsg = msg;
                        switch (result.type) {
                            case 'ok':
                                modal.toast({
                                    message: '登录成功',
                                    duration: 1.5,
                                });
                                break;
                            case 'error':
                                modal.toast({
                                    message: '登录失败',
                                    duration: 1.5,
                                });
                                break;
                        }
                    }
                )
            },
            logout() {
                baichuanModel.logout(null, result => {
                    const msg = JSON.stringify(result);
                    this.showmsg = msg;
                    switch (result.type) {
                        case 'ok':
                            modal.toast({
                                message: msg + '登出成功',
                                duration: 1.5,
                            })
                            break;
                        case 'error':
                            modal.toast({
                                message: '登出失败',
                                duration: 1.5,
                            })
                            break;
                    }
                });
            },
            openByUrl() {

                baichuanModel.openByUrl({
                    page_type: '2',
                    shop_id: '65626181',
                    pid: 'mm_112883640_11584347_72287650277',
                    client_type: 'taobao',
                    alibcFailModeType: 'AlibcNativeFailModeJumpH5',
                    open_type: 'Auto',
                    back_url: '',
                    url: 'https://uland.taobao.com/coupon/edetail?e=oSSExmvWXYYGQASttHIRqdYQwfcs8zoyxKXGKLqne1Hsx8cAhaH1SiZlT35kVCJr5R4kLBbVNWVsYgQTrXiDpq0TeAL%2BmcF17w9v818T2zNzQzL%2FHTq%2BPBemP0hpIIPvjDppvlX%2Bob8NlNJBuapvQ2MDg9t1zp0RRkY43XGTK8ko1aiZVhb9ykMuxoRQ3C%2BH5vl92ZYH25Cie%2FpBy9wBFg%3D%3D&traceId=0b15099215669559409745730e&union_lens=lensId:0b0b9f56_0c4c_16cd5da2c7f_3b31&xId=PwB9ZSWQxCtEwHxtbQc8iynshj5KEW16KP6OV6MAlpGpKCKmVGQMnjwQNhiGQpRY1gFyQHtqnYiv5wxGKTyCdf&tj1=1&tj2=1&relationId=518419440&activityId=23f4487e169647bd98b0d7fb2645947a',
                }, result => {
                    const msg = JSON.stringify(result);
                    this.showmsg = msg;
                    modal.toast({
                        message: msg,
                        duration: 1.5,
                    })
                    switch (result.type) {
                        case 'ok':
                            modal.toast({
                                message: 'url打开成功',
                                duration: 1.5,
                            })
                            break;
                        case 'error':
                            modal.toast({
                                message: 'url打开失败',
                                duration: 1.5,
                            })
                            break;
                    }
                });
            },
            openByCode() {
                // baichuanModel.openByCode(null,null);
                baichuanModel.openByCode({
                    page_type: '2',
                    shop_id: '65626181',
                    pid: 'mm_112883640_11584347_72287650277',
                    client_type: 'taobao',
                    alibcFailModeType: 'AlibcNativeFailModeJumpDOWNLOAD',
                    open_type: 'Native',
                    back_url: '',
                }, result => {
                    const msg = JSON.stringify(result);
                    // modal.toast({
                    //  message:msg,
                    //  duration:1.5,
                    // })
                    this.showmsg = msg;
                    switch (result.type) {
                        case 'ok':
                            modal.toast({
                                message: 'code打开成功',
                                duration: 1.5,
                            })
                            break;
                        case 'error':
                            modal.toast({
                                message: 'code打开失败',
                                duration: 1.5,
                            })
                            break;
                    }
                })
            },
            openWebview() {
                baichuanModel.openWebview({
                    page_type: '2',
                    shop_id: '65626181',
                    pid: 'mm_112883640_11584347_72287650277',
                    client_type: 'taobao',
                    alibcFailModeType: 'AlibcNativeFailModeJumpH5',
                    open_type: 'Auto',
                    back_url: '',
                    url: 'https://uland.taobao.com/coupon/edetail?e=oSSExmvWXYYGQASttHIRqdYQwfcs8zoyxKXGKLqne1Hsx8cAhaH1SiZlT35kVCJr5R4kLBbVNWVsYgQTrXiDpq0TeAL%2BmcF17w9v818T2zNzQzL%2FHTq%2BPBemP0hpIIPvjDppvlX%2Bob8NlNJBuapvQ2MDg9t1zp0RRkY43XGTK8ko1aiZVhb9ykMuxoRQ3C%2BH5vl92ZYH25Cie%2FpBy9wBFg%3D%3D&traceId=0b15099215669559409745730e&union_lens=lensId:0b0b9f56_0c4c_16cd5da2c7f_3b31&xId=PwB9ZSWQxCtEwHxtbQc8iynshj5KEW16KP6OV6MAlpGpKCKmVGQMnjwQNhiGQpRY1gFyQHtqnYiv5wxGKTyCdf&tj1=1&tj2=1&relationId=518419440&activityId=23f4487e169647bd98b0d7fb2645947a',
                }, result => {
                    const msg = JSON.stringify(result);
                    this.showmsg = msg;
                    modal.toast({
                        message: msg,
                        duration: 1.5,
                    })
                    switch (result.type) {
                        case 'ok':
                            modal.toast({
                                message: 'url打开成功',
                                duration: 1.5,
                            })
                            break;
                        case 'error':
                            modal.toast({
                                message: 'url打开失败',
                                duration: 1.5,
                            })
                            break;
                    }
                });
            },

        },
    };
</script>
<style>
    button {
        margin-top: 30upx;
        margin-bottom: 30upx;
    }

    .button-sp-area {
        margin: 0 auto;
        width: 60%;
    }

    .content {
        text-align: center;
        height: 400upx;
    }

    .wrapper {
        flex-direction: column;
        justify-content: center;
    }

    .button {
        width: 200px;
        margin-top: 30px;
        margin-left: 20px;
        padding-top: 20px;
        padding-bottom: 20px;
        border-width: 2px;
        border-style: solid;
        border-color: #458B00;
        background-color: #458B00;
    }

    .text {
        font-size: 30px;
        color: #666666;
        text-align: center;
    }

    .msg {
        width: 200px;
        margin-top: 20px;
        margin-bottom: 20px;
        font-size: 15px;
        text-align: center;
        white-space: normal;
        word-break: break-all;
        word-wrap: break-word;
    }
</style>

1、百川初始化需要手动进行,并且必须初始化之后后续操作才能进行

2、如果出现初始化失败 loginservice对象为空,则说明yw1222.jpg图片与所使用的apk包名和keystore.jks不一致,需要重新上传apk包,并使用一致的keystore.jks

注:目前项目属于测试阶段...

隐私、权限声明

1. 本插件需要申请的系统权限列表:

<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/> <uses-permission android:name="android.permission.CAMERA" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-feature android:name="android.hardware.camera" /> <uses-feature android:name="android.hardware.camera.autofocus" /> <uses-permission android:name="android.permission.VIBRATE" /> <uses-permission android:name="android.permission.FLASHLIGHT" />

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

阿里百川以及uniapp所需

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

不包含广告

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问