我想在我的Ionic 4应用程序中使用Cordova Firebase Dynamiclink插件:https://github.com/chemerisuk/cordova-plugin-firebase-dynamiclinks#installation。
这也有一个Ionic-native-plugin用法:npm install @ionic-native/firebase-dynamic-links和usage:
import { FirebaseDynamicLinks } from '@ionic-native/firebase-dynamic-links/ngx';
constructor(private firebaseDynamicLinks: FirebaseDynamicLinks) { }
...
this.firebaseDynamicLinks.onDynamicLink()
.subscribe((res: any) => console.log(res), (error:any) => console.log(error));问题是:我想使用在Ionic-native-plugin Cordova Firebase Dynamiclink插件中可用的createDynamicLink(parameters)方法,但说
属性'createDynamicLink‘在'FirebaseDynamicLinks’类型上不存在。
因此,我需要直接使用Cordova Firebase Dynamiclink,并且我尝试使用它
import { cordova } from '@ionic-native/core';
...
cordova.plugins.firebase.dynamiclinks.createDynamicLink({
link: "https://google.com"
}).then(function(url) {
console.log("Dynamic link was created:", url);
}); 但犯了错误
属性'plugins‘在type上不存在(pluginObj: any,methodName: string,config: CordovaOptions,args: IArguments \ any[]) => any’。
也试过移除进口
cordova.plugins.firebase.dynamiclinks.createDynamicLink({
link: "https://google.com"
}).then(function(url) {
console.log("Dynamic link was created:", url);
});得到了这个
属性'firebase‘在'CordovaPlugins’类型上不存在。
科多瓦插件的正确用法是什么?
更新
离子本机插件现在包含在Cordova Firebase Dynamiclink插件中可用的所有方法。
发布于 2020-05-27 01:45:34
发布于 2022-02-10 15:19:49
我已经开发了一个离子5应用程序,它使用Firebase动态链接,它的工作很好,但它需要一些努力。我看了一些视频来了解Firebase动态链接是如何工作的,但是肯定有很多东西没有显示出来。
要回答最初的问题,您可以始终手动创建动态链接,这就是我在我们的解决方案中所做的。我们创建了一个动态链接,可以帮助用户登录(注册一个帐户)。我们的动态链接有来自后端进程的自定义onboardingId,该链接通过短消息提供给用户。
这是app.component.ts构造函数中的一些代码,当用户单击动态链接时会发生这样的情况:
// Handle the logic here after opening the app (app is already installed) with the Dynamic link
this.firebaseDynamicLinks.onDynamicLink().subscribe((res: any) => {
console.log('app was opened with dynamic link');
console.log(res);
/* This only fires on subsequent calls and not on app start 20220208 STR
console.log(JSON.stringify(res)); //"{"deepLink":"https://localhost/onboard?onboardingId=8ed634b0-53b7-4a0f-b67e-12c06019982a","clickTimestamp":1643908387670,"minimumAppVersion":0}"
var dynamicLink = JSON.parse(JSON.stringify(res));
var deepLink = dynamicLink.deepLink;
console.log(deepLink);
if (deepLink.indexOf("onboard")>=0){
this.isOnboarding = true;
}
alert("deepLink ="+ deepLink);
*/
}, (error:any) => {
console.log(error)
});我最初认为,如果用户没有安装应用程序,Firebase可以处理所有的魔术。我错了!您还必须处理代码,以拾取动态链接后,应用程序被安装。
下面的代码将从剪贴板读取动态链接,并在应用程序安装过程中幸存下来。放在app.component.ts ngOnInit()中。
this.platform.ready().then(() => {
this.firebaseDynamicLinks.getDynamicLink().then((data) => {
//added 20220208 STR try to help open the deep link if app is just installed
if (data != null) {
console.log(JSON.stringify(data));
//alert("initializeApp():"+JSON.stringify(data));
var dynamicLink = JSON.parse(JSON.stringify(data));
var deepLink = dynamicLink.deepLink;
console.log("initializeApp():"+deepLink);
if (deepLink != "") {
if (deepLink.indexOf("onboard")>=0){
this.isOnboarding = true;
this.deepLinkToOnboard(deepLink);
}
}
}
});}因此,要在安装了Firebase插件之后处理动态链接,您必须有两部分代码:一个用于处理已经安装的应用程序,另一个用于处理该应用程序未安装的动态链接。
https://stackoverflow.com/questions/60436397
复制相似问题