编辑有关如何将此插件与vue结合使用的更多说明,请参见NativeScript vue, vuex and urlhandler
我正在努力做到这一点,以便电子邮件中的链接可以打开我正在构建的应用程序(我正在构建的用于测试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
(电子邮件中的链接)时没有任何反应...
我看了看Angular示例,并且在初始化时调用了handleOpenURL。因此,我尝试将handleOpenURL放入挂接的Vue中-但这也不起作用。真的很沮丧...
new Vue({
mounted() {
handleOpenURL(function(appURL) {
console.log('Got the following appURL', appURL);
});
},
render: h => h("frame", [h(Home)]),
store: Store
}).$start();
答案 0 :(得分:2)
您正在更新错误的info.plist
。基本上,platforms文件夹内的所有内容都是自动生成的。在您的App_Resources/iOS/info.plist
中使用一个。
答案 1 :(得分:1)
您打给handleOpenURL
的时间太晚了。应该在创建Vue
上下文之前调用它,以便可以在幕后适当地扩充UIAppDelegate
。
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' });