在 NativeScript vue iOS 中从电子邮件 link 打开应用程序

Opening app from email link in NativeScript vue iOS

编辑 关于如何在vue中使用此插件的更多说明,请参阅


我正在努力做到这一点,以便电子邮件中的 link 可以打开我正在构建的应用程序(这是我正在构建的用于学习 NativeScript 的测试应用程序)。我在 iOS.

上使用 https://www.npmjs.com/package/nativescript-urlhandler 和 NativeScript vue

platforms/ios/######/app/App_Resources/iOS/Info.plist我添加了

<key>CFBundleURLTypes</key>
<array>
   <dict>
       <key>CFBundleURLName</key>
       <string>com.#######.######</string>
   </dict>
   <dict>
       <key>CFBundleURLSchemes</key>
       <array>
           <string>mycustomappfoobar</string>
       </array>
   </dict>
</array>

在 app.js 内,我添加了:

const handleOpenURL = require("nativescript-urlhandler").handleOpenURL;


handleOpenURL(function(appURL) {
    console.log('Got the following appURL', appURL);
  });

点击 mycustomappfoobar://test(电子邮件中的 link)时没有任何反应...

我查看了 Angular 示例,在初始化时调用了 handleOpenURL...所以我尝试将 handleOpenURL 放在 vues 安装的钩子中 - 但这也不起作用。真的难倒了...

new Vue({
    mounted() {
      handleOpenURL(function(appURL) {
        console.log('Got the following appURL', appURL);
      });
    },
    render: h => h("frame", [h(Home)]),
    store: Store
}).$start();

您更新错误info.plist。基本上平台文件夹中的任何内容都是自动生成的。使用 App_Resources/iOS/info.plist.

中的那个

你打电话给 handleOpenURL 太晚了。这应该在创建 Vue 上下文之前调用,以便 UIAppDelegate 可以在幕后适当地增加。

来自https://github.com/hypery2k/nativescript-urlhandler/blob/cd6939119910b6345e444055ad17716a7c0ad1d6/demo/app/app.ts

import { handleOpenURL, AppURL } from 'nativescript-urlhandler';

import './app.scss';
import './bundle-config';
import * as app from 'application';

handleOpenURL((appURL: AppURL) => {
    console.log('handleOpenURL', appURL);
});

app.start({ moduleName: 'main-page' });