HBuilderX

HBuilderX

极客开发工具
uni-app

uni-app

开发一次,多端覆盖
uniCloud

uniCloud

云开发平台
HTML5+

HTML5+

增强HTML5的功能体验
MUI

MUI

上万Star的前端框架

离线打包 无法播放视频

按官网文档引用 media-release.aar、weex_videoplayer-release.aar 添加配置 <feature name="VideoPlayer" value="io.dcloud.media.MediaFeatureImpl"/>

proguard-rules.pro 中添加

-keep class simijkplayer.{
public <fields>;
public <methods>;
}
-keep class tv.danmaku.ijk.media.
{
<fields>;
<methods>;
}

继续阅读 »

按官网文档引用 media-release.aar、weex_videoplayer-release.aar 添加配置 <feature name="VideoPlayer" value="io.dcloud.media.MediaFeatureImpl"/>

proguard-rules.pro 中添加

-keep class simijkplayer.{
public <fields>;
public <methods>;
}
-keep class tv.danmaku.ijk.media.
{
<fields>;
<methods>;
}

收起阅读 »

NXCLOUD牛信云——国际短信验证码服务商,专享通道,即时送达

即时通信

一、什么是国际短信验证码?

国际短信验证码很好理解,就是用户在进行注册、登录或修改密码等操作的时候,都需要验证码确认操作是否属于本人的一个安全验证方式。这种验证方式目前广泛运用于众多APP中,不仅是出海企业,更是众多海外用户所信赖的验证方式。

二、牛信云出海国际短信验证码的功能有哪些?

①助力海外用户快速登录账号:在出海国际短信验证码还未使用到账号登录中时,人们都是进行账号和密码登录,同时通过图形或字母等验证方式进行辅助保障,过程十分繁琐,海外用户很难做到在短时间内实现账号登录。出海国际短信验证码的诞生帮助人们解决了一部分登录难题,海外用户现在登录APP账号,只需要输入手机号码,然后获取验证码,将正确的验证码填入,即可成功登录。这种登录方式不仅方便且十分快捷,深受众多海外用户喜爱。

②保障海外用户的账号安全:在人们心中,出海国际短信验证码较大的作用便是其可以很好地保障海外用户的账号安全。海外用户不管是在登录账号、密码修改,或是在操作账号变更等情况,只要海外用户的验证码不泄露,账号的安全性能还是很高的。这都是得益于手机号码实行一机一码制,海外用户无论是在操作哪些机密设置时,都是需要依靠出海国际短信验证码验证,其安全性还是很强的。

③防止海外用户恶意注册:以往出海企业在推出新APP的时候,总有针对新用户发送一些福利,而这个时候总有些非法分子想要薅取出海企业羊毛,不断申请注册新账号领取福利,出海企业发现这个漏洞却无法弥补,出海国际短信验证码的诞生,则很好地帮助了出海企业有效制止此类事件。现在企业发放对新用户的福利,一个手机号码只能领取一次,无法再实现重复领取。不仅有效防止了用户恶意注册,还保障了出海企业的利益。

牛信云以科技为基础,以产品为驱动,通过开放API接口,将底层通信能力SDK化,向开发者及企业级用户提供安全、稳定、可靠的一站式出海云通信服务。为了方便开发者调用,牛信云还为跨境电商、出海游戏、在线会议、在线社交、视频直播、金融支付、本地生活等行业提供不同的场景化解决方案,将通信云技术普惠化和实用化,助力中国品牌迅速拓展和占领海外市场,实现高效出海。

面对充满竞争与瞬息万变的全球市场,牛信云积极拥抱变化,始终为进步和卓越而努力,以出海通信为基石,争分夺秒地沿着数字化服务生态前进,推动业务与世界不懈向前,为中国出海企业提供一站式的通信解决方案,与合作伙伴一道,共同前进。

继续阅读 »

一、什么是国际短信验证码?

国际短信验证码很好理解,就是用户在进行注册、登录或修改密码等操作的时候,都需要验证码确认操作是否属于本人的一个安全验证方式。这种验证方式目前广泛运用于众多APP中,不仅是出海企业,更是众多海外用户所信赖的验证方式。

二、牛信云出海国际短信验证码的功能有哪些?

①助力海外用户快速登录账号:在出海国际短信验证码还未使用到账号登录中时,人们都是进行账号和密码登录,同时通过图形或字母等验证方式进行辅助保障,过程十分繁琐,海外用户很难做到在短时间内实现账号登录。出海国际短信验证码的诞生帮助人们解决了一部分登录难题,海外用户现在登录APP账号,只需要输入手机号码,然后获取验证码,将正确的验证码填入,即可成功登录。这种登录方式不仅方便且十分快捷,深受众多海外用户喜爱。

②保障海外用户的账号安全:在人们心中,出海国际短信验证码较大的作用便是其可以很好地保障海外用户的账号安全。海外用户不管是在登录账号、密码修改,或是在操作账号变更等情况,只要海外用户的验证码不泄露,账号的安全性能还是很高的。这都是得益于手机号码实行一机一码制,海外用户无论是在操作哪些机密设置时,都是需要依靠出海国际短信验证码验证,其安全性还是很强的。

③防止海外用户恶意注册:以往出海企业在推出新APP的时候,总有针对新用户发送一些福利,而这个时候总有些非法分子想要薅取出海企业羊毛,不断申请注册新账号领取福利,出海企业发现这个漏洞却无法弥补,出海国际短信验证码的诞生,则很好地帮助了出海企业有效制止此类事件。现在企业发放对新用户的福利,一个手机号码只能领取一次,无法再实现重复领取。不仅有效防止了用户恶意注册,还保障了出海企业的利益。

牛信云以科技为基础,以产品为驱动,通过开放API接口,将底层通信能力SDK化,向开发者及企业级用户提供安全、稳定、可靠的一站式出海云通信服务。为了方便开发者调用,牛信云还为跨境电商、出海游戏、在线会议、在线社交、视频直播、金融支付、本地生活等行业提供不同的场景化解决方案,将通信云技术普惠化和实用化,助力中国品牌迅速拓展和占领海外市场,实现高效出海。

面对充满竞争与瞬息万变的全球市场,牛信云积极拥抱变化,始终为进步和卓越而努力,以出海通信为基石,争分夺秒地沿着数字化服务生态前进,推动业务与世界不懈向前,为中国出海企业提供一站式的通信解决方案,与合作伙伴一道,共同前进。

收起阅读 »

uniapp APP + H5 在线预览文档 兼容 最麻烦的微信浏览器

    //在线预览文档  
    online_preview(){  

        //#ifndef H5  
        uni.showLoading({ title: '加载中...' })//出现加载中图标  
        let str = this.allUrl  
        uni.downloadFile({  
                url: str, //要预览的PDF的地址  
                success: function(res) {  
                    console.log('预览成功',res)  

                    if (res.statusCode === 200) {   
                        var Path = res.tempFilePath //返回的文件临时地址,用于后面打开本地预览所用  
                        uni.openDocument({  
                            filePath: Path, //要打开的文件路径  
                            showMenu: false, //右上角是否有可以转发分享的功能  
                            success: function(res) {  
                                uni.hideLoading()//关闭加载中图标  
                                uni.showToast({  
                                    title: '打开成功',  
                                    icon: 'none'  
                                })  
                            },  
                            fail: function(res) {  
                                uni.hideLoading()//关闭加载中图标  
                                uni.showToast({  
                                    title: '打开失败,请下载wps再试',  
                                    icon: 'none'  
                                })  
                                console.log('打开失败',res) //打开失败  
                            }  
                        })  
                    }  
                },  
                fail: function(res) {  
                    uni.hideLoading()//关闭加载中图标  
                    uni.showToast({  
                        title: '加载失败,请稍后再试',  
                        icon: 'none'  
                    })  
                    console.log('加载失败',res) //预览失败  
                }  
            })  
        // #endif  
        //#ifdef H5   
            let resultNew= encodeURIComponent(this.allUrl)  
            this.allUrl2 = 'http://view.officeapps.live.com/op/view.aspx?src='+ resultNew  
            window.open(this.allUrl2)  
        // #endif  
    },
继续阅读 »
    //在线预览文档  
    online_preview(){  

        //#ifndef H5  
        uni.showLoading({ title: '加载中...' })//出现加载中图标  
        let str = this.allUrl  
        uni.downloadFile({  
                url: str, //要预览的PDF的地址  
                success: function(res) {  
                    console.log('预览成功',res)  

                    if (res.statusCode === 200) {   
                        var Path = res.tempFilePath //返回的文件临时地址,用于后面打开本地预览所用  
                        uni.openDocument({  
                            filePath: Path, //要打开的文件路径  
                            showMenu: false, //右上角是否有可以转发分享的功能  
                            success: function(res) {  
                                uni.hideLoading()//关闭加载中图标  
                                uni.showToast({  
                                    title: '打开成功',  
                                    icon: 'none'  
                                })  
                            },  
                            fail: function(res) {  
                                uni.hideLoading()//关闭加载中图标  
                                uni.showToast({  
                                    title: '打开失败,请下载wps再试',  
                                    icon: 'none'  
                                })  
                                console.log('打开失败',res) //打开失败  
                            }  
                        })  
                    }  
                },  
                fail: function(res) {  
                    uni.hideLoading()//关闭加载中图标  
                    uni.showToast({  
                        title: '加载失败,请稍后再试',  
                        icon: 'none'  
                    })  
                    console.log('加载失败',res) //预览失败  
                }  
            })  
        // #endif  
        //#ifdef H5   
            let resultNew= encodeURIComponent(this.allUrl)  
            this.allUrl2 = 'http://view.officeapps.live.com/op/view.aspx?src='+ resultNew  
            window.open(this.allUrl2)  
        // #endif  
    },
收起阅读 »

addInterceptor 拦截器提供异步支持

拦截器 hook Interceptor addInterceptor

需求背景

在开发中很多场景都会使用到Interceptor拦截器。例如:拦截请求、拦截uni API、权限控制。

原理解析

通过Interceptor实现,https://github.com/dcloudio/uni-app/blob/alpha/src/core/helpers/interceptor.js我们可以看到。

invoke可以接收一个promise。那么我们就可以在invoke中返回一个Promise来处理异步方法

uni.addInterceptor('navigateTo', {  
    invoke(args) {  
        return new Promise((resolve) => {   

                resolve(args);  

        });  
    },  
});

注意 invokepromise返回的invoke参数必须要传。

Demo

以拦截navigateTo方法为例,跳转之前需要从后台请求是否有权限

uni.addInterceptor('navigateTo', {  
    invoke(args) {  
        return new Promise((resolve) => {  
            // 模拟请求   
            setTimeout(() => {  
                args.url = '/pages/home/index';  
                resolve(args);  
            }, 2000);  
        });  
    },  
});
继续阅读 »

需求背景

在开发中很多场景都会使用到Interceptor拦截器。例如:拦截请求、拦截uni API、权限控制。

原理解析

通过Interceptor实现,https://github.com/dcloudio/uni-app/blob/alpha/src/core/helpers/interceptor.js我们可以看到。

invoke可以接收一个promise。那么我们就可以在invoke中返回一个Promise来处理异步方法

uni.addInterceptor('navigateTo', {  
    invoke(args) {  
        return new Promise((resolve) => {   

                resolve(args);  

        });  
    },  
});

注意 invokepromise返回的invoke参数必须要传。

Demo

以拦截navigateTo方法为例,跳转之前需要从后台请求是否有权限

uni.addInterceptor('navigateTo', {  
    invoke(args) {  
        return new Promise((resolve) => {  
            // 模拟请求   
            setTimeout(() => {  
                args.url = '/pages/home/index';  
                resolve(args);  
            }, 2000);  
        });  
    },  
});
收起阅读 »

可视化uniapp 自动生成代码,组件、模板拖拽布局,并保存设计

uniapp 布局

**免费使用可视化uniapp 自动生成代码项目
1.可视化拖拽表单,基础组件、模板组件,自动生成布局
2.自定义修改组件的内容 和组件的样式
3,可以保存你修改后的内容,保存你的设计
4.一键导出项目全部代码,可以直接运行
5.查看导出代码的历史记录,可以继续编辑
6.查看源码可以看到修改后的样式自动变化
7.可视化创建文件,选中文件把代码保存在文件中
8.多个页面uniapp代码同时导出
9.自动生成路由配置,可以实现页面之间的跳转
————————————————

体验地址:https://we7.diyhey.com/admin/index


继续阅读 »

**免费使用可视化uniapp 自动生成代码项目
1.可视化拖拽表单,基础组件、模板组件,自动生成布局
2.自定义修改组件的内容 和组件的样式
3,可以保存你修改后的内容,保存你的设计
4.一键导出项目全部代码,可以直接运行
5.查看导出代码的历史记录,可以继续编辑
6.查看源码可以看到修改后的样式自动变化
7.可视化创建文件,选中文件把代码保存在文件中
8.多个页面uniapp代码同时导出
9.自动生成路由配置,可以实现页面之间的跳转
————————————————

体验地址:https://we7.diyhey.com/admin/index


收起阅读 »

uni-app subNVue 动态打开原生子窗体指南

subnvue

需求背景

uni-app subNVue 原生子窗体开发指南文档中列举了subNVue在开发过程中能解决的很多问题。
但在现实生活中还有几个问题迫切的需要解决。例如:
1、免配置page.json,动态打开subNVue
2、subNVue被关闭后,无法再次打开
3、适用场景非常多,更多玩法等你开发

原理解析

正常的subNVue需要在page.json中配置到对应需要使用subNVue的页面下。但这也制约了我们将subNVue写成通用组件。还有多个页面使用,每个页面都得配的麻烦。
通过阅读Uni-app源码,我们可以看到一种全新被雪藏起来的调用方式,代码位于https://github.com/dcloudio/uni-app/blob/dev/src/platforms/app-plus/helpers/page.js

const style = {  
 uniNView: {  
      // eslint-disable-next-line  
      path: `${typeof VUE_APP_TEMPLATE_PATH === 'string' ? VUE_APP_TEMPLATE_PATH : ''}/${url}.js`,  
      defaultFontSize: 16,  
      viewport: plus_.screen.resolutionWidth  
    }  
}  
plus.webview.create('', pageId, style)

当用html5+create webview方法时,在style里传uniNView字段,则代表这个webview是虚拟的,会使用nvue来渲染。渲染的这个js文件是nvue编译出来的(你也可以理解为将subNVue页面打包成了js,然后交给webview通过NVue去渲染)

使用方法

1、声明subNVue页面,生成uniNView渲染页面的js文件

page.json中声明subNVue页面,声明之后,uni-app会将nvue页面打包为js, 这个js存放位置就是uniNView path所打开文件的位置


目录结构:

├── components  
│   └── sub-nvue  
│       └── sub-nvue.nvue

2、打开subNVue

测试工程见附件

继续阅读 »

需求背景

uni-app subNVue 原生子窗体开发指南文档中列举了subNVue在开发过程中能解决的很多问题。
但在现实生活中还有几个问题迫切的需要解决。例如:
1、免配置page.json,动态打开subNVue
2、subNVue被关闭后,无法再次打开
3、适用场景非常多,更多玩法等你开发

原理解析

正常的subNVue需要在page.json中配置到对应需要使用subNVue的页面下。但这也制约了我们将subNVue写成通用组件。还有多个页面使用,每个页面都得配的麻烦。
通过阅读Uni-app源码,我们可以看到一种全新被雪藏起来的调用方式,代码位于https://github.com/dcloudio/uni-app/blob/dev/src/platforms/app-plus/helpers/page.js

const style = {  
 uniNView: {  
      // eslint-disable-next-line  
      path: `${typeof VUE_APP_TEMPLATE_PATH === 'string' ? VUE_APP_TEMPLATE_PATH : ''}/${url}.js`,  
      defaultFontSize: 16,  
      viewport: plus_.screen.resolutionWidth  
    }  
}  
plus.webview.create('', pageId, style)

当用html5+create webview方法时,在style里传uniNView字段,则代表这个webview是虚拟的,会使用nvue来渲染。渲染的这个js文件是nvue编译出来的(你也可以理解为将subNVue页面打包成了js,然后交给webview通过NVue去渲染)

使用方法

1、声明subNVue页面,生成uniNView渲染页面的js文件

page.json中声明subNVue页面,声明之后,uni-app会将nvue页面打包为js, 这个js存放位置就是uniNView path所打开文件的位置


目录结构:

├── components  
│   └── sub-nvue  
│       └── sub-nvue.nvue

2、打开subNVue

测试工程见附件

收起阅读 »

软件发布-Go To YouTube Website

Go To YouTube Website发布!

仅在DCloud,bilibili与oschina发布

支持Android平台

放出源码:

源码:

<!DOCTYPE html>  
<html>  
<body>  
<head>  
    <meta charset="utf-8">  
    <meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />  
    <title>Go To YouTube Website</title>  
    <script type="text/javascript">  

        document.addEventListener('plusready', function(){  
            //console.log("所有plus api都应该在此事件发生后调用,否则会出现plus is undefined。")  

            <script language="javascript"> location.replace("http://www.youtube.com") </script>  
        });  

    </script>  
</head>   
</body>  
</html>

(要安装文件私信我)

继续阅读 »

Go To YouTube Website发布!

仅在DCloud,bilibili与oschina发布

支持Android平台

放出源码:

源码:

<!DOCTYPE html>  
<html>  
<body>  
<head>  
    <meta charset="utf-8">  
    <meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />  
    <title>Go To YouTube Website</title>  
    <script type="text/javascript">  

        document.addEventListener('plusready', function(){  
            //console.log("所有plus api都应该在此事件发生后调用,否则会出现plus is undefined。")  

            <script language="javascript"> location.replace("http://www.youtube.com") </script>  
        });  

    </script>  
</head>   
</body>  
</html>

(要安装文件私信我)

收起阅读 »

uni-app iosH5 第一次进入页面输入框无法自动聚焦唤起键盘

uni-app iosH5 第一次进入页面输入框无法自动聚焦
在onload里面使用this.nextTick(()=>{
手动ref调focus方法也无效
})

只有第一次无效,后面进去都可以直接唤起键盘。但是页面刷新后,第一次进去又是无效

uni-app iosH5 第一次进入页面输入框无法自动聚焦
在onload里面使用this.nextTick(()=>{
手动ref调focus方法也无效
})

只有第一次无效,后面进去都可以直接唤起键盘。但是页面刷新后,第一次进去又是无效

2022年淘宝客APP寻合伙人一起

社交电商淘宝客APP已上线运营,现寻求运营推广一起开创新事业。
项目名称:云拼APP
淘宝客APP盈利模式简介:
淘宝店商家设置推广商品的佣金,淘宝客推荐给终端消费者购买,便可以获得佣金。
云拼APP是给淘宝客使用的一个TO B的APP平台。
项目特色:
1、 区别于市面淘宝客APP的共享运营模式,不在淘宝客佣金中抽成,让每个淘宝客用他们自己的淘宝联盟账号转链。
2、采用0元拼等新型拼团模式吸引用户,引流。用户免费参与活动,参与即送红包。
项目现状:
已渡过开发阶段,APP已上架,初期运营阶段。

有兴趣的淘宝客联系我,谢谢。
也欢迎淘宝客合伙人或者推广运营合伙人加入团队。
VX联系mingze0803 备注HB

继续阅读 »

社交电商淘宝客APP已上线运营,现寻求运营推广一起开创新事业。
项目名称:云拼APP
淘宝客APP盈利模式简介:
淘宝店商家设置推广商品的佣金,淘宝客推荐给终端消费者购买,便可以获得佣金。
云拼APP是给淘宝客使用的一个TO B的APP平台。
项目特色:
1、 区别于市面淘宝客APP的共享运营模式,不在淘宝客佣金中抽成,让每个淘宝客用他们自己的淘宝联盟账号转链。
2、采用0元拼等新型拼团模式吸引用户,引流。用户免费参与活动,参与即送红包。
项目现状:
已渡过开发阶段,APP已上架,初期运营阶段。

有兴趣的淘宝客联系我,谢谢。
也欢迎淘宝客合伙人或者推广运营合伙人加入团队。
VX联系mingze0803 备注HB

收起阅读 »

CRM系统源码下载|客户管理系统源码下载

源码分享

  CRM代表客户关系管理或在销售过程中管理与现有和潜在客户的互动的过程。任何使用数据来建立、改善和管理客户关系的策略或方法都可以归入“CRM”的范畴。简而言之,CRM(客户关系管理)系统是组织和理解有价值的受众数据和见解的枢纽,提供收集和管理对您的业务重要人员的信息所需的所有工具。这个函数在不同的部门看起来会很不一样。例如,CRM可以在打电话之前,帮助销售代表快速查看过去的互动和购买情况,为客户提供所需的信息和支持,让营销人员了解有助于营销活动目标的细节。
  
  CRM系统源码下载PHP及演示站:c.xsymz.icu

   

  CRM重要性
  
  组织和理解CRM数据洞察力已经成为公司中任何面向客户角色的关键职责。但随着受众信息的重要性与日俱增,企业需要掌握的细节也越来越多。由于有许多在线渠道和多种方式让客户参与其中,数据常常被隔离在不同的工具中,因此很难(或不可能)使用这些工具全面了解您的客户用有意义的方式和他们交谈。
  
  这就是为什么所有规模和所有行业的企业都在转向CRM工具,为受众报告创建一个中心枢纽,以便更好地了解客户是谁和他们想要什么,并在他们成长过程中建立更牢固的关系。客户关系管理软件还可以帮助他们与潜在客户接触,通过自动化赢得时间,增加客户参与度,并达成更多交易。
  
  作为一个营销人员,你会收集每一个营销活动的有价值的信息由此产生的每一次客户互动(包括在新客户、现有客户和潜在客户之间单击、查看和购买)。你的客户知识是最宝贵的资源之一,你有助于改善你的营销和销售,以发展你的业务。有效地收集和组织你的信息可以告诉你你需要知道的关于顾客偏好的一切:他们喜欢什么产品,他们在找什么,告诉他们他们需要知道什么的信息,还有你还没有找到的地方。你越早开始通过CRM平台捕捉、组织和理解这些数据,你就越快开始使用它来改善客户体验,建立更多更好的客户关系。
  
  客户关系管理不仅仅适用于企业或财富500强企业。利用统计数据改善客户关系已成为各种规模和利基业务的基本功能。当你在外面的时候开始联系比管理层更好。从你为你的企业创建一个在线展示的那一刻起,你就开始获得关于你的客户和潜在客户的有价值的信息。CRM可以帮助您为建立和跟踪与这些客户的关系、收集有关他们偏好的数据和建立营销自动化流程为了保持一致,个性化随着时间的推移,接触点。
  
  客户关系管理不需要是一个全职的工作:无论你有一个小的销售团队,还是你是一个依靠偶尔的营销活动来推销你的品牌的独立企业家,把你的数据为你工作可以帮助你留在客户的雷达,发现新闻销售机会和节省时间。它还允许你做出基于知识的决定,决定把你的重点放在哪里联系客户的预算在他们喜欢的任何渠道,不管怎样,或者当他们准备购买时,他们都会想到你。
  
  找到一个能满足你的业务需求的CRM工具(即使它只是上面概述的基本标准)可以立即产生效果对小企业的好处营销人员。为CRM打下坚实的基础,您可以:
  
  更好地了解你的营销对象。当您为客户报告创建一个中心位置时,您可以更清楚地看到您正在与谁交谈,并且可以在业务不断增长和发展的过程中跟踪任何变化。
  
  将正确的内容发送给正确的人。当您使用数据来确定消息的目标时,可以轻松地发送对客户重要的内容(这使得他们更有可能继续收听)。尤其是对于那些严重依赖市场营销来定位品牌的小企业来说,根据特定段调整消息是确保你不会让你的观众超负荷的关键。
  
  用你的数据找新的人交谈。根据现有的受众知识创建活动,可以很容易地找到最有可能喜欢您所提供内容的人,这样您就可以更明智地确定活动目标,最大限度地利用预算,提高销售效率。
  
  找新的方式和有共同兴趣的人交谈。通过在同一个地方查看所有数据,您将开始注意到联系人是谁以及他们感兴趣的模式。你对观众的趋势和喜好了解得越多,就越容易想出新的方法来与你的观众交谈,并改进你的宣传活动。

   

  CRM的4个基本功能
  
  当然,如果您刚刚开始为管理客户数据打下基础,那么您不太可能需要与大型企业相同的CRM功能。具体的客户关系管理需求将根据您的在线业务功能和规模而有所不同,但有一些关键的需求,任何小企业营销人员都应牢记在心。小型企业客户关系管理的这些基础包括:
  
  观众数据中心。首先也是最重要的,小企业需要一个集中的位置来开始收集他们的所有客户信息:联系信息、电话、销售活动、客户满意度等。创建一个单一的真相来源可以让您在收集客户体验和见解时组织他们,找出一些模式来揭示你的大多数听众生活在哪里,他们与哪些信息互动最多。
  
  与您的主要营销渠道的无缝连接。尤其是对于那些销售人员较少或根本不存在的企业,营销是销售产品或服务的重要组成部分,应尽可能量身定制。在与营销渠道分离的工具中管理受众数据会使将客户洞察转化为个性化沟通变得更加困难,并增加了信息在洗牌中丢失的风险。确定您将用于联系客户的几个关键渠道,并确保您的CRM工具允许您无缝地从这些工具收集报告。
  
  测试、学习和迭代活动的能力。作为一个成长中的企业,你需要了解你的受众是谁以及他们的偏好是什么。重要的是要寻找一种工具,它可以帮助您轻松了解频道的表现,了解受众如何与您的营销互动,并使用这些信息调整您的营销活动。
  
  帮助你成长的工具。一旦你开始收集听众数据并进一步了解你在和谁交谈,你就希望能够利用这些信息找到你应该和之交谈的人:潜在的新客户,提高你的客户忠诚度。尤其是对于预算和资源有限的小企业来说,受众信息是一个重要的工具,可以帮助你预测谁最有可能购买,并将你的资源集中到他们需要的地方。

   

  如何选择合适的CRM
  
  你对CRM的具体需求会根据你的业务运作和销售给客户的方式而有很大的不同,所以你应该根据你的目标,花点时间来弄清楚你的战略是什么样子的。在评估自己的需求时,有4个关键问题要问自己:
  
  谁会使用你的CRM工具?你的CRM工具主要用于市场营销吗?一个销售团队?两者都有?考虑一下组织中的每个人,他们可以从访问客户洞察中获益(无论是为了可见性,还是为了特定目的使用数据),以找到一个能够满足您需要的工具。
  
  你需要多复杂才能开始?你不可能在一夜之间就建立一个复杂的客户关系管理战略。找一个可以简化方法的工具,这样你就可以在学习的过程中调整你的策略并逐渐增加复杂性。
  
  你用哪种营销渠道和你的观众交谈?找到一个与你最常使用的渠道直接集成的工具,这样信息就可以迅速转化为行动,而洞察力就不可能被孤立或丢失。
  
  你的CRM会随着你的成长而扩展吗?随着时间的推移,您将发现使用受众报告和自动化CRM流程的新方法,因此找到一个工具,让您在准备好时添加此功能非常重要。但请记住,如果有一些CRM流程您永远不需要,您不想为不必要的复杂性付出代价(并解决这些问题)。

继续阅读 »

  CRM代表客户关系管理或在销售过程中管理与现有和潜在客户的互动的过程。任何使用数据来建立、改善和管理客户关系的策略或方法都可以归入“CRM”的范畴。简而言之,CRM(客户关系管理)系统是组织和理解有价值的受众数据和见解的枢纽,提供收集和管理对您的业务重要人员的信息所需的所有工具。这个函数在不同的部门看起来会很不一样。例如,CRM可以在打电话之前,帮助销售代表快速查看过去的互动和购买情况,为客户提供所需的信息和支持,让营销人员了解有助于营销活动目标的细节。
  
  CRM系统源码下载PHP及演示站:c.xsymz.icu

   

  CRM重要性
  
  组织和理解CRM数据洞察力已经成为公司中任何面向客户角色的关键职责。但随着受众信息的重要性与日俱增,企业需要掌握的细节也越来越多。由于有许多在线渠道和多种方式让客户参与其中,数据常常被隔离在不同的工具中,因此很难(或不可能)使用这些工具全面了解您的客户用有意义的方式和他们交谈。
  
  这就是为什么所有规模和所有行业的企业都在转向CRM工具,为受众报告创建一个中心枢纽,以便更好地了解客户是谁和他们想要什么,并在他们成长过程中建立更牢固的关系。客户关系管理软件还可以帮助他们与潜在客户接触,通过自动化赢得时间,增加客户参与度,并达成更多交易。
  
  作为一个营销人员,你会收集每一个营销活动的有价值的信息由此产生的每一次客户互动(包括在新客户、现有客户和潜在客户之间单击、查看和购买)。你的客户知识是最宝贵的资源之一,你有助于改善你的营销和销售,以发展你的业务。有效地收集和组织你的信息可以告诉你你需要知道的关于顾客偏好的一切:他们喜欢什么产品,他们在找什么,告诉他们他们需要知道什么的信息,还有你还没有找到的地方。你越早开始通过CRM平台捕捉、组织和理解这些数据,你就越快开始使用它来改善客户体验,建立更多更好的客户关系。
  
  客户关系管理不仅仅适用于企业或财富500强企业。利用统计数据改善客户关系已成为各种规模和利基业务的基本功能。当你在外面的时候开始联系比管理层更好。从你为你的企业创建一个在线展示的那一刻起,你就开始获得关于你的客户和潜在客户的有价值的信息。CRM可以帮助您为建立和跟踪与这些客户的关系、收集有关他们偏好的数据和建立营销自动化流程为了保持一致,个性化随着时间的推移,接触点。
  
  客户关系管理不需要是一个全职的工作:无论你有一个小的销售团队,还是你是一个依靠偶尔的营销活动来推销你的品牌的独立企业家,把你的数据为你工作可以帮助你留在客户的雷达,发现新闻销售机会和节省时间。它还允许你做出基于知识的决定,决定把你的重点放在哪里联系客户的预算在他们喜欢的任何渠道,不管怎样,或者当他们准备购买时,他们都会想到你。
  
  找到一个能满足你的业务需求的CRM工具(即使它只是上面概述的基本标准)可以立即产生效果对小企业的好处营销人员。为CRM打下坚实的基础,您可以:
  
  更好地了解你的营销对象。当您为客户报告创建一个中心位置时,您可以更清楚地看到您正在与谁交谈,并且可以在业务不断增长和发展的过程中跟踪任何变化。
  
  将正确的内容发送给正确的人。当您使用数据来确定消息的目标时,可以轻松地发送对客户重要的内容(这使得他们更有可能继续收听)。尤其是对于那些严重依赖市场营销来定位品牌的小企业来说,根据特定段调整消息是确保你不会让你的观众超负荷的关键。
  
  用你的数据找新的人交谈。根据现有的受众知识创建活动,可以很容易地找到最有可能喜欢您所提供内容的人,这样您就可以更明智地确定活动目标,最大限度地利用预算,提高销售效率。
  
  找新的方式和有共同兴趣的人交谈。通过在同一个地方查看所有数据,您将开始注意到联系人是谁以及他们感兴趣的模式。你对观众的趋势和喜好了解得越多,就越容易想出新的方法来与你的观众交谈,并改进你的宣传活动。

   

  CRM的4个基本功能
  
  当然,如果您刚刚开始为管理客户数据打下基础,那么您不太可能需要与大型企业相同的CRM功能。具体的客户关系管理需求将根据您的在线业务功能和规模而有所不同,但有一些关键的需求,任何小企业营销人员都应牢记在心。小型企业客户关系管理的这些基础包括:
  
  观众数据中心。首先也是最重要的,小企业需要一个集中的位置来开始收集他们的所有客户信息:联系信息、电话、销售活动、客户满意度等。创建一个单一的真相来源可以让您在收集客户体验和见解时组织他们,找出一些模式来揭示你的大多数听众生活在哪里,他们与哪些信息互动最多。
  
  与您的主要营销渠道的无缝连接。尤其是对于那些销售人员较少或根本不存在的企业,营销是销售产品或服务的重要组成部分,应尽可能量身定制。在与营销渠道分离的工具中管理受众数据会使将客户洞察转化为个性化沟通变得更加困难,并增加了信息在洗牌中丢失的风险。确定您将用于联系客户的几个关键渠道,并确保您的CRM工具允许您无缝地从这些工具收集报告。
  
  测试、学习和迭代活动的能力。作为一个成长中的企业,你需要了解你的受众是谁以及他们的偏好是什么。重要的是要寻找一种工具,它可以帮助您轻松了解频道的表现,了解受众如何与您的营销互动,并使用这些信息调整您的营销活动。
  
  帮助你成长的工具。一旦你开始收集听众数据并进一步了解你在和谁交谈,你就希望能够利用这些信息找到你应该和之交谈的人:潜在的新客户,提高你的客户忠诚度。尤其是对于预算和资源有限的小企业来说,受众信息是一个重要的工具,可以帮助你预测谁最有可能购买,并将你的资源集中到他们需要的地方。

   

  如何选择合适的CRM
  
  你对CRM的具体需求会根据你的业务运作和销售给客户的方式而有很大的不同,所以你应该根据你的目标,花点时间来弄清楚你的战略是什么样子的。在评估自己的需求时,有4个关键问题要问自己:
  
  谁会使用你的CRM工具?你的CRM工具主要用于市场营销吗?一个销售团队?两者都有?考虑一下组织中的每个人,他们可以从访问客户洞察中获益(无论是为了可见性,还是为了特定目的使用数据),以找到一个能够满足您需要的工具。
  
  你需要多复杂才能开始?你不可能在一夜之间就建立一个复杂的客户关系管理战略。找一个可以简化方法的工具,这样你就可以在学习的过程中调整你的策略并逐渐增加复杂性。
  
  你用哪种营销渠道和你的观众交谈?找到一个与你最常使用的渠道直接集成的工具,这样信息就可以迅速转化为行动,而洞察力就不可能被孤立或丢失。
  
  你的CRM会随着你的成长而扩展吗?随着时间的推移,您将发现使用受众报告和自动化CRM流程的新方法,因此找到一个工具,让您在准备好时添加此功能非常重要。但请记住,如果有一些CRM流程您永远不需要,您不想为不必要的复杂性付出代价(并解决这些问题)。

收起阅读 »

插件启动Activity 报Invoker gotoNativeActivity exception:java.lang.reflect.InvocationTargetException

uniapp插件

使用UniApp的原生插件启动Activity一直报Invoker gotoNativeActivity exception:java.lang.reflect.InvocationTargetException,在网上收到各种方法,尝试后均没有效果。
后来一篇文章说是因为主应用找不到插件中引用的第三方库。
于是我尝试把plugin_module中依赖的第三方库,移动到app中去依赖。在plugin_module中使用下面的依赖方式,就成功启动的Activity。

compileOnly fileTree(dir: '../app/libs', include: ['uniapp-v8-release.aar',  
                                                   'android-pdf-viewer-release.aar',  
                                                   'pdfium-android-1.9.0.aar'])  

继续阅读 »

使用UniApp的原生插件启动Activity一直报Invoker gotoNativeActivity exception:java.lang.reflect.InvocationTargetException,在网上收到各种方法,尝试后均没有效果。
后来一篇文章说是因为主应用找不到插件中引用的第三方库。
于是我尝试把plugin_module中依赖的第三方库,移动到app中去依赖。在plugin_module中使用下面的依赖方式,就成功启动的Activity。

compileOnly fileTree(dir: '../app/libs', include: ['uniapp-v8-release.aar',  
                                                   'android-pdf-viewer-release.aar',  
                                                   'pdfium-android-1.9.0.aar'])  

收起阅读 »

不知道什么问题,能个我个合理的解释吗

iOS打包 云端打包发布常见问题 云打包

排队快五个小时,然后这样。不知道啥问题

排队快五个小时,然后这样。不知道啥问题