如何解决Facebook 延迟深层链接无法正常工作React Native、Android
我正在尝试使用 Facebook Deferred Deep Links(在 Android 应用中)在应用安装后传输一些有价值的数据
测试中(
遵循 Facebook 应用通知中的测试链接(使用 Facebook 应用广告助手在 facebook for developers 创建);
使用启动选项中指定的 URL 从 Android Studio 安装应用程序(发布版和调试版);
尝试过模拟器和物理设备
) 一切都按计划进行——数据按预期接收和使用,但在真实设备上,按照广告安装应用程序,数据没有到达......
Facebook 应用广告助手说一切都设置正确 使用 Linking module from react-native
处理链接数据这是我的 useDeepLinkUrlData() 钩子:
const useDeepLinkUrlData = () => {
const [deepLinkUrlData,setDeepLinkUrlData] = useState('');
useEffect(() => {
Linking.addEventListener('url',(initDeepLinkUrlObj) => {
log.deepLinkHook('Get deep link data through Linking.listener');
log.deepLinkHook('initDeepLinkUrlObj:',initDeepLinkUrlObj);
setDeepLinkUrlData(initDeepLinkUrlObj.url);
});
return () => {
Linking.removeAllListeners('url');
};
},[]);
useEffect(() => {
Linking.getinitialURL()
.then(initDeepLinkUrl => {
log.deepLinkHook('Get deep link data through Linking.getinitialUrl()');
log.deepLinkHook('initDeepLinkUrl:',initDeepLinkUrl)
setDeepLinkUrlData(initDeepLinkUrl);
});
},[]);
useEffect(() => {
if (deepLinkUrlData && deepLinkUrlData.indexOf('?') !== -1) {
setDeepLinkUrlData(deepLinkUrlData.split('?')[1]);
};
},[deepLinkUrlData]);
useEffect(() => {
if (deepLinkUrlData && deepLinkUrlData.indexOf('&target_url') !== -1) {
setDeepLinkUrlData(deepLinkUrlData.split('&target_url')[0]);
};
},[deepLinkUrlData]);
if (deepLinkUrlData?.indexOf('?') !== -1
|| deepLinkUrlData?.indexOf('target_url') !== -1) {
return '';
};
log.deepLinkHook('URL returned from useDeepLinkUrlData() hook',deepLinkUrlData);
return deepLinkUrlData;
};
这是我的 MainActivity 的 onCreate() 方法(放置在 android/app/src/main/java/.../MainActivity.java):>
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
AppLinkData.fetchDeferredAppLinkData(this,getString(R.string.facebook_app_id),new AppLinkData.CompletionHandler() {
@Override
public void onDeferredAppLinkDataFetched(AppLinkData appLinkData) {
Log.d("DeepLink","appLinkData: " + appLinkData);
}
}
);
Intent intent = getIntent();
String action = intent.getAction();
Uri data = intent.getData();// URI data = intent.getData();
Log.d("DeepLink","data: " + data);
}
这是我来自 AndroidManifest.xml 的活动:
<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
android:screenorientation="portrait"
android:launchMode="singleTask"
android:windowSoftInputMode="adjustResize">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.broWSABLE" />
<data android:scheme="app" />
</intent-filter>
</activity>
在 android/app/build.gradle 依赖项{}我有
implementation 'com.facebook.android:facebook-android-sdk:[5,6)'
在 android/build.gradle 存储库中{}我有
mavenCentral()
我使用的是 react-native-fbsdk 3.0.0
也许有人遇到过这个问题并且可以帮助我(如果我必须澄清一些事情 - 没问题)?
感谢您的关注
附言我的母语不是英语,对不起,如果我输入了一些文盲
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。