开发者社区> 问答> 正文

EMAS中如何在一个工程下集成多个 aliyun-emas-services.json 文件?就是会

问题1:EMAS中如何在一个工程下集成多个 aliyun-emas-services.json 文件?就是会根据环境注册多个app,每个app都会产生一个 aliyun-emas-services.json 文件。firebase会把所有 app的信息全部整合到一个文件里,但我看阿里云不会这样做,那应该怎么处理呢?
问题2:请问有示例代码吗?谢谢

展开
收起
cuicuicuic 2023-06-13 18:51:17 71 0
2 条回答
写回答
取消 提交回答
    1. 在EMAS中,可以通过使用多个applicationId来支持在一个工程下集成多个aliyun-emas-services.json文件。

    具体而言,您可以为每个应用程序指定不同的applicationId以及对应的aliyun-emas-services.json文件。在应用程序启动时,根据当前应用程序的applicationId去读取相应的配置文件。您可以在AndroidManifest.xml文件中添加多个application并配置不同的applicationId和aliyun-emas-services.json文件路径。例如:

    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.example.myapp">
        <uses-permission android:name="android.permission.INTERNET" />
    
        <application android:name=".MyApplication1"
            android:label="My Application 1"
            android:icon="@mipmap/ic_launcher"
            android:theme="@style/AppTheme1">
            <meta-data
                android:name="com.alibaba.app.appkey"
                android:value="@string/ALIYUN_APPKEY_1" />
            <meta-data
                android:name="com.alibaba.app.secret"
                android:value="@string/ALIYUN_APPSECRET_1" />
            <meta-data
                android:name="com.alibaba.appchannel"
                android:value="@string/ALIYUN_APPCHANNEL_1" />
            <meta-data
                android:name="com.alibaba.app.package.name"
                android:value="@string/ALIYUN_PACKAGENAME_1" />
        </application>
    
        <application android:name=".MyApplication2"
            android:label="My Application 2"
            android:icon="@mipmap/ic_launcher"
            android:theme="@style/AppTheme2">
            <meta-data
                android:name="com.alibaba.app.appkey"
                android:value="@string/ALIYUN_APPKEY_2" />
            <meta-data
                android:name="com.alibaba.app.secret"
                android:value="@string/ALIYUN_APPSECRET_2" />
            <meta-data
                android:name="com.alibaba.appchannel"
                android:value="@string/ALIYUN_APPCHANNEL_2" />
            <meta-data
                android:name="com.alibaba.app.package.name"
                android:value="@string/ALIYUN_PACKAGENAME_2" />
        </application>
    </manifest>
    
    1. 关于示例代码的问题,具体示例代码可以根据您的具体需求而定。

    不过,以下是一个简单的示例,展示了如何通过EMAS发送一条自定义消息:

    import com.alibaba.sdk.android.push.AndroidPopupActivity;
    import com.alibaba.sdk.android.push.notification.CPushMessage;
    
    public class DemoActivity extends AndroidPopupActivity {
        @Override
        protected void onStart() {
            super.onStart();
    
            // 获取消息
            CPushMessage message = getIntent().getParcelableExtra("message");
    
            // 发送自定义消息
            PushServiceFactory.getCloudPushService().send(
                    ByteArray.fromString("Hello World"),
                    "MyTopic",
                    new PushCallback() {
                        @Override
                        public void onResult(PushResult result) {
                            // 处理推送结果
                        }
    
                        @Override
                        public void onError(Throwable t) {
                            // 处理推送错误
                        }
                    }
            );
        }
    }
    
    2023-06-14 09:05:17
    赞同 展开评论 打赏
  • 回答1:代码里加判断,根据环境加载不同文件 回答2:没有,此回答整理自钉群“【移动推送】技术支持3群-应用研发平台EMAS”

    2023-06-13 19:12:34
    赞同 展开评论 打赏
来源圈子
更多
收录在圈子:
基于阿里巴巴以及合作伙伴的最佳实践,围绕大前端、云原生领域的相关技术热点(小程序、Serverless、应用中间件、低代码、DevOps)展开行业探讨,与开发者一起探寻云原生时代应用研发的新范式。
相关文档: 移动研发平台
问答排行榜
最热
最新

相关电子书

更多
阿里邮箱—安全高效集成 立即下载
集成智能接入网关APP:优化企业级移动办公网络 立即下载
云效助力企业集成安全到DevOps中 立即下载