问题:如何使用urlhandler插件从NativeScript应用中的iOS通用链接访问查询参数(例如?id = bogus&time = now)?
我正在开发一个包含nativescript-urlhandler插件的javascript NativeScript应用程序。我需要能够通过短信接收深层链接,打开应用程序,并访问链接的完整URL。这在Android上工作正常,但在iOS上却无法正常工作。
在iOS上,深层链接会打开应用程序,但不会触发handleOpenURL函数。我已经进行了数小时的搜索,并且似乎似乎是url处理程序插件需要处理appDelegate的ContinueUserActivity。但是,我不知道如何取得进展。
相关参考文献:
https://medium.com/@abhimuralidharan/universal-links-in-ios-79c4ee038272
https://developerinsider.co/handle-query-parameters-in-universal-links/
iOS Universal Links and GET parameters
我相信就应用程序的设置和apple-app-site-association文件而言,我已经准备就绪。就像我说的那样,深层链接确实会打开iOS应用程序,我只是无法获得可以访问链接上传递的数据的方式的控制权。
我非常感谢任何见解或指点。
答案 0 :(得分:1)
根据{N} doc,我最终可以通过为continueUserActivity指定自定义UIApplicationDelegate来完成此工作,而无需修改urlhandler插件。
这是app.js中有问题的代码,它可能使我省下了三天的时间来解决其他问题:
// Handle entry via universal link on iOS
// See https://docs.nativescript.org/core-concepts/application-lifecycle#ios-uiapplicationdelegate
// See https://medium.com/@abhimuralidharan/universal-links-in-ios-79c4ee038272
if (!global.isAndroid) {
const MyDelegate = (function (_super) {
__extends(MyDelegate, _super);
function MyDelegate() {
_super.apply(this, arguments);
}
MyDelegate.prototype.applicationContinueUserActivityRestorationHandler = function (application, userActivity) {
if (userActivity.activityType === NSUserActivityTypeBrowsingWeb) {
routeUrl(userActivity.webpageURL);
}
return true;
};
MyDelegate.ObjCProtocols = [UIApplicationDelegate];
return MyDelegate;
})(UIResponder);
application.ios.delegate = MyDelegate;
}
答案 1 :(得分:0)