uni-app 短信恢复

发布于 1周前 作者 caililin 来自 Uni-App

uni-app 短信恢复

把服务器上的短信内容恢复到手机上

5 回复

短信恢复插件做好可以直接上架,链接发我,我会直接去购买

有需求加微 xyange_ 专职uniapp五年

公司承接项目外包开发、双端(Android,iOS)原生插件开发。
为什么选择我们: 1、1000+项目开发积累,数百种商业模式开发经验,更懂您的需求,沟通无障碍。 2、一年免费技术保障,系统故障或被攻击,2小时快速响应提供解决方案落地。 3、软件开发源码定制工厂,去中间商降低成本,提高软件开发需求沟通效率。 4、纯原生开发,拒绝模板和封装系统,随时更新迭代,增加功能,无需重做系统。 5、APP定制包办软件著作权申请,30天内保证拿到软著证书,知识产权受保护。 6、中软云科技导入严谨的项目管理系统,确保项目准时交付,快速抢占市场商机。 7、软件开发费、维护费、第三方各种费用公开透明,不花冤枉钱,不玩套路。
已有大量双端插件、App、小程序、公众号、PC、移动端、游戏等案例。
行业开发经验:银行、医疗、直播、电商、教育、旅游、餐饮、分销、微商、物联网、零售等
商务QQ:1559653449 商务微信:fan-rising
7x24小时在线,欢迎咨询了解

在uni-app中实现短信恢复功能,通常指的是通过监听短信接收事件,从短信内容中提取验证码或特定信息,然后自动填充到应用中的相应输入框中。由于直接访问短信内容涉及到用户隐私和安全,大多数现代操作系统(如iOS和Android)对此有严格的限制。

在Android上,可以通过注册广播接收器(BroadcastReceiver)来监听短信接收事件(SMS_RECEIVED_ACTION)。然而,从Android 4.4(API 级别 19)开始,Google Play服务引入了SMS Retriever API,这是一个更安全、更推荐的方式来获取短信验证码。

由于uni-app主要基于Vue.js开发,并且打包为原生应用,我们可以通过原生插件或模块来实现这一功能。下面是一个基于Android原生代码使用SMS Retriever API的示例,你可以将这个逻辑封装成一个uni-app的原生插件。

Android原生代码示例

  1. 添加依赖: 在build.gradle文件中添加SMS Retriever API的依赖。

    implementation 'com.google.android.gms:play-services-auth:19.3.0'
    
  2. 创建BroadcastReceiver

    import androidx.annotation.NonNull;
    import androidx.core.app.JobIntentService;
    import com.google.android.gms.auth.api.phone.SmsRetriever;
    import com.google.android.gms.auth.api.phone.SmsRetrieverClient;
    import com.google.android.gms.auth.api.phone.SmsRetrieverClient.OnSuccessListener;
    import com.google.android.gms.tasks.OnCompleteListener;
    import com.google.android.gms.tasks.Task;
    
    public class SmsRetrieverService extends JobIntentService {
        private static final int JOB_ID = 9999;
        private SmsRetrieverClient smsRetrieverClient;
    
        public static void enqueueWork(Context context, Intent work) {
            enqueueWork(context, SmsRetrieverService.class, JOB_ID, work);
        }
    
        @Override
        protected void onHandleWork(@NonNull Intent intent) {
            smsRetrieverClient = SmsRetriever.getClient(this);
    
            // Start SMS retriever
            smsRetrieverClient.startSmsRetriever()
                .addOnSuccessListener(new OnSuccessListener<Void>() {
                    @Override
                    public void onSuccess(Void aVoid) {
                        // Successfully started SMS retriever, expect broadcast receiver to be triggered
                    }
                })
                .addOnFailureListener(e -> {
                    // Failed to start SMS retriever, inspect exception for more details
                });
        }
    
        // BroadcastReceiver to listen for SMS retrieval broadcast
        // (implementation omitted for brevity)
    }
    
  3. 注册Service和BroadcastReceiver: 在AndroidManifest.xml中注册SmsRetrieverService和相应的BroadcastReceiver

由于篇幅限制,完整的BroadcastReceiver实现和uni-app插件封装代码未在此展示。但上述代码提供了在Android上实现短信恢复功能的基本框架。对于iOS,由于系统限制,通常需要通过用户交互(如点击短信中的链接)来触发应用内的操作。

回到顶部