【发布时间】:2019-09-23 12:33:15
【问题描述】:
按照苹果文档和 Branch 的文档here,我在我的 Nativescript Angular (iOS) 应用程序中设置了一个有效的通用链接。但是,应用打开时如何解析链接?
例如,当有人通过链接打开应用程序时,我想让我的应用程序读取链接,以便它可以转到应用程序的正确页面。
this answer 中有一些有用的代码,但我不断收到错误。这可能是因为代码是用 vanilla JS 编写的,我没有正确地将它翻译成 Angular。 “_extends”和“routeUrL”的使用都会给我带来错误。
如果没有更多代码,Nativescript url-handler 插件似乎无法工作。
所以,在设置了通用链接,并安装了 nativescript url-handler 插件之后,我在 app.module.ts 中输入了以下内容:
const Application = require("tns-core-modules/application");
import { handleOpenURL, AppURL } from 'nativescript-urlhandler';
declare var NSUserActivityTypeBrowsingWeb
if (Application.ios) {
const MyDelegate = (function (_super) {
_extends(MyDelegate, _super);
function MyDelegate() {
_super.apply(this, arguments);
}
MyDelegate.prototype.applicationContinueUserActivityRestorationHandler = function (application, userActivity) {
if (userActivity.activityType === NSUserActivityTypeBrowsingWeb) {
this.routeUrl(userActivity.webpageURL);
}
return true;
};
MyDelegate.ObjCProtocols = [UIApplicationDelegate];
return MyDelegate;
})(UIResponder);
Application.ios.delegate = MyDelegate;
}
...
export class AppModule {
ngOnInit(){
handleOpenURL((appURL: AppURL) => {
console.log('Got the following appURL = ' + appURL);
});
}
}
问题似乎主要在于“_extends”和“_super.apply”。例如,我收到此错误:
'NativeScript encountered a fatal error: TypeError: undefined is not an object (evaluating '_extends')
编辑:注意nativescript-urlhandler 插件是no longer being updated. 有谁知道如何用Nativescript 解析通用链接?
【问题讨论】:
-
第一个插件是在 3 个月前最近更新的,当我上次检查时它曾经支持查询参数。您所指的 SO 线程至少有一年的历史。按照插件文档进行操作,如果遇到任何问题,请发布完整的错误日志。
-
我确实遵循了插件文档但没有成功。其他人也有类似的问题:github.com/hypery2k/nativescript-urlhandler/issues/88
-
请分享可以重现问题的示例项目。
-
查看编辑中的代码以获取更多详细信息。请注意,该插件专门针对深层链接。该文档未涉及通用链接,并且不清楚该插件是否完全适用于通用链接。说“只看插件文档”不是一个合适的答案。如果您的反对意见只是 bc “插件已更新,但线程较旧”,请删除。 SO线程仍然相关。昨天刚刚更新。
-
我自己没有机会测试通用链接,但插件已经实现了。所以如果你有一个示例项目,也许我可以看看。
标签: nativescript