cordova - 如何将 launchmyapp 与 Meteor 一起用于验证电子邮件链接?

标签 cordova meteor phonegap-plugins custom-url

我正在使用 Meteoric 包在我的 meteor 应用程序上运行 ionic。我想使用 https://github.com/EddyVerbruggen/Custom-URL-scheme (nl.x-services.plugins.launchmyapp 插件)在我的应用程序中。实际上我正在使用它,但它不能正常工作。

我正在尝试使用此插件从 URL 深层链接到我的应用程序。现在我只是想让它与验证电子邮件链接一起使用。我单击该链接,它会将我带到该应用程序,但它总是要我先登录。

发送的链接如下所示。

myappname://verify-email/longtokenidhere1212332

如果我单击此按钮,我的应用程序会启动,但它总是要求用户提供登录凭据而不是验证电子邮件地址。

更新 1:

我几乎可以正常工作了。我将 handleOpenURL 添加为全局函数,如下所示

Meteor.startup(function() {
    handleOpenURL = function handleOpenURL(url) {
        var token = url.replace("myappname://verify-email/", "");
        console.log("Token: " + token);
        Router.go('/verify-email/', {"paramToken": token});
    }
});

现在我确实看到 token 打印到控制台。

但是当它路由时,我得到一个路由未找到页面。如何从控制台打印当前 URL 以查看我是否到达了正确的完整 URL 路径?我尝试了 window.URL,但打印了 URLConstructor() 对象。

最佳答案

"/verify-email"不是铁路由;它被烘焙到 meteor 本身。

因此,您可以调用 Accounts.verifyEmail 而不是 Router.go()来自客户端,像这样:

Meteor.startup(function() {
    handleOpenURL = function handleOpenURL(url) {
        var token = url.replace("myappname://verify-email/", "");
        console.log("Token: " + token);
        // mark this client's email as verified by using the token
        Accounts.verifyEmail(token, 
            function(error){
               if (error) {
                   console.log("email not verified");
               } else {
                   console.log("email verified successfully!");
               }
            }
        );
    }
});

关于cordova - 如何将 launchmyapp 与 Meteor 一起用于验证电子邮件链接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29874731/

相关文章:

android - ionic 状态重置不起作用

angular - 删除 ionic 3 应用程序中提供者的循环依赖

iphone - .plist 中的 Xcode4ExternalHosts

javascript - 我们如何根据 mongoDB 数据增加语义 UI 进度条?

javascript - Iron-Router:显示列表和单篇文章的一种路由

ios - 在 PhoneGap BarcodeScanner 上显示应用程序

ios - Ionic ios 模拟器不加载谷歌地图

javascript - 如何使用 Angular-meteor 为 MongoDB 中的嵌套对象生成唯一 id?

javascript - Cordova 3.x 在运行时 IOS 强制屏幕方向

ios - GeofencePlugin Cordova 插件不适用于 IOS