我已添加 Itercom 聊天以获得客户支持或联系我们。但是当我添加 Intercom sdk 依赖项
(实现 'io.intercom.android:intercom-sdk-base:9.+ ')并且应用程序运行然后崩溃我的应用程序。我收到如下错误
java.lang.NoSuchMethodError:没有虚拟方法日志(ILjava/lang/String;Ljava/lang/Throwable; V in class Lokhttp3/internal/platform/Platform;
或其超类(“okhttp3.internal.platform.Platform”的声明出现在 /data/app/com.exampla.app-Opatc6X6ZSZqGt8Wv1Uwty==/base.apk!classes3.dex 中)
我们的 Angular 12 应用程序有一个模块,该模块导入我们想要根据配置文件配置的依赖项,该配置文件仅在运行时可用,而在编译时不可用。
有问题的软件包是ng-intercom,尽管我想其他软件包稍后也会出现同样的问题。
动态配置背后的动机是我们的应用程序在 4 个不同的环境中运行,我们不想为每个环境创建单独的构建,因为它们之间的唯一区别是包含后端 URL 和一些应用程序 ID 的配置文件(例如对讲机、Facebook 应用 ID 等)
这就是目前所讨论的导入方式:
imports: [
...
IntercomModule.forRoot({
appId: env.intercomID,
updateOnRouterChange: true,
}),
...
Run Code Online (Sandbox Code Playgroud)
问题是appID 应该是可配置的,env 变量应该动态加载。目前,它是导入并编译到代码中的 JSON,但这意味着我们无法在不同环境中更改它,而不为每个环境重新构建代码:
import env from '../../assets/environment.json';
Run Code Online (Sandbox Code Playgroud)
然而,我们有一个APP_INITIALIZER,它不会阻止模块在解析之前被导入:
{
provide: APP_INITIALIZER,
useFactory: AppService.load,
deps: [AppService],
multi: true,
},
Run Code Online (Sandbox Code Playgroud)
...以及相关的配置加载器:
static load(): Promise<void> {
return import('../../assets/environment.json').then((configuration) => {
AppService.configSettings = configuration;
});
}
Run Code Online (Sandbox Code Playgroud)
我们可以使用此配置,而我们的组件和服务不会出现问题。
我们设法在angularx-social-login的配置中实现了我们想要的结果:
providers: [
...
{
provide: 'SocialAuthServiceConfig', …
Run Code Online (Sandbox Code Playgroud) 考虑一个用 vanilla JS 编写的单页应用程序(以避免特定于框架的答案)。
我有一个默认加载 Intercom 的应用程序,但我想在特定页面中隐藏小部件。
这应该可以从 Intercom 本身实现,如帮助中心的这篇文章所示,但它在单页应用程序中并不真正起作用 - 无论在 Intercom 中配置什么,都会显示小部件。
一种选择是在页面上找到小部件并为给定页面手动隐藏它,但这感觉、听起来和味道都像是一种黑客攻击(当返回小部件应该出现的页面时,它需要重新启用小部件) .
那么,关于如何为 SPA 做到这一点,有什么好的做法吗?
我正在使用 redux-segment 进行分析,并且正在尝试实施 Intercom。我遇到的问题实际上是让它加载等。我正在尝试遵循此方法,但仍然不确定在哪里输入应用程序 ID 等。 对讲段。我想在抓取当前用户时在我的动作创建器中加载对讲机,但没有关于如何实际加载对讲机的文档。
import { EventTypes } from 'redux-segment';
export function currentUser() {
const request = user.current(); //this correctly grabs current user.
if(request == null) {
//having trouble with this part. load intercom non user specific
} else {
load intercom user specific
}
return {
type: CURRENT_USER,
payload: request
};
}
Run Code Online (Sandbox Code Playgroud) 我已经构建了一个使用内部通信(第三方扩展)的Ionic 2应用程序.使用cocoapods安装内部通信.
在编译我的应用程序时,我收到错误:
diff: /Podfile.lock: No such file or directory
diff: /Manifest.lock: No such file or directory
error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.
Run Code Online (Sandbox Code Playgroud)
这是由构建阶段生成的[CP] Check Pods Manifest.lock
:
diff "${PODS_PODFILE_DIR_PATH}/Podfile.lock" "${PODS_ROOT}/Manifest.lock" > /dev/null
if [ $? != 0 ] ; then
# print error to STDERR
echo "error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation." >&2
exit …
Run Code Online (Sandbox Code Playgroud) 我一直在阅读Calendly API文档,并且试图弄清楚是否有一种方法可以以编程方式为用户创建会议事件。
我们的网站上安装了对讲机,但我们想要一种更本地化的方法来安排会议。有没有办法使用循环方法通过 api 创建与 Calendly 的会议。不确定如何通过阅读上面链接的文档来实现。
我正在尝试将 Intercom 集成到我的 Remix Run 应用程序中。Intercom 要求您列出信使应在其上工作的受信任域。官方文档指出
“我们不支持添加本地主机,但您可以添加‘0.0.0.0’和/或‘127.0.0.1’,Messenger 将在这些域上运行。”
我已将这些 IP 地址添加到我的受信任域列表中,但仍然无法使其工作。在本地主机上运行时,我在“网络”选项卡中发现错误 403 的请求,并显示消息:“JavaScript 代码段中定义的对讲应用程序不信任此域。”。我究竟做错了什么?
这是一个有趣的话题,此刻让我震惊。我正在尝试获取细分中所有用户的用户ID。大约2500个用户。该细分是使用对讲机的搜索/过滤器创建的。这是我抓取用户的方式(随机细分ID):
https://api.intercom.io/users?per_page=60&segment_id=3baabac0c422f15fcfb7f760
Run Code Online (Sandbox Code Playgroud)
这给了我60个用户,而且效果很好。但是,如果我再次发送请求,则会获得60个新用户。我已经确认,这60个新用户的顺序也不相同,所以我认为它们是随机选择的。
如果我们忘记了segment_id
请求中的,则可以获取完整的用户列表,如果需要的话可以进行排序和排序,如下所示:
https://api.intercom.io/users?per_page=60&sort=created_at&order=asc
Run Code Online (Sandbox Code Playgroud)
我现在有60个用户的列表,它们将始终是相同的(因为created_at
和升序排列)。
如果添加segment_id
背面,会发生什么,因此请求如下所示:
https://api.intercom.io/users?per_page=60&sort=created_at&order=asc&segment_id=3baabac0c422f15fcfb7f760
Run Code Online (Sandbox Code Playgroud)
我得到的结果与我刚提出第一个请求时完全相同。它完全忽略了排序和顺序。完全可以 我尝试请求20页(1200个用户),但是由于结果不一致,所以重复了很多。这意味着即使我浏览了所有页面,也永远无法百分百确保获得所有用户。
我以为他们的API会告诉我一些有关此内容的信息,但是到目前为止,我真的不知道该怎么办。所以我的问题确实是:
如何使用Intercom的API对细分受众群中的用户列表进行排序和排序?
我的使用 Intercom 的应用程序在运行时显示此警告。官方示例应用程序也是如此。
\n\n\n\n\nRun Code Online (Sandbox Code Playgroud)\nW/Intercom\xc2\xa0realtime: No realtime endpoints present so we can\'t connect\n
此警告的目的是什么?我该如何解决它?
\n\nIntercom.setLogLevel(Intercom.LogLevel.VERBOSE);
如果有帮助,这里是调用之前使用的更多日志Intercom.initialize(...);
上下文:
[Intercom] Dispatched Action: SET_LAUNCHER_VISIBILITY: VISIBLE\n[Intercom] Started observing md5asdfasdfasdfasdfasfd.MainActivity@57e44d4\n[Intercom realtime] No realtime endpoints present so we can\'t connect\n[Intercom] Dispatched Action: SESSION_STARTED: No Value\n
Run Code Online (Sandbox Code Playgroud)\n 我在 AndroidManifest.xml 中遇到 Flutter 构建错误
android:exported 需要为元素 <service#io.intercom.android.sdk.fcm.IntercomFcmMessengerService> 显式指定。
android:exported
当相应组件定义了意图过滤器时,面向 Android 12 及更高版本的应用需要指定显式值
AndroidManifest.xml 文件中没有名为 intercom 的元素。我还在活动“.MainActivity”中添加了 android:exported="true" 但错误仍然存在。
我的AndoidManifest.xml文件如下
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="social.myproject.app">
<!-- The INTERNET permission is required for development. Specifically,
flutter needs it to communicate with the running application
to allow setting breakpoints, to provide hot reload, etc.
-->
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-feature
android:name="android.hardware.camera"
android:required="false"/>
<uses-feature
android:name="android.hardware.camera.autofocus"
android:required="false" />
<queries>
<intent>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="https"/> …
Run Code Online (Sandbox Code Playgroud)intercom ×10
android ×2
angular ×1
calendly ×1
cocoapods ×1
dependencies ×1
firebase ×1
flutter ×1
intercom-ios ×1
ios ×1
javascript ×1
reactjs ×1
remix.run ×1
typescript ×1
xcode ×1