我使用Custom Url Scheme允许深度链接到我的离子应用。但除了打开应用程序,我希望通过深层链接传递的路径打开正确的状态。以下方法(有效)是否会造成任何问题?或者有更简洁的方法来解决?
测试链接:myapp://somepath
handleOpenUrl(url)
,在打开应用之前将somepath
保存到本地存储中$ionicplatform.on('resume'...)
调用checkExternalUrl
,检查externalUrl
的本地存储空间,如果找到保存的路径,则使用window.location.href
WWW /应用/ JS / app.js:
function handleOpenURL(url) {
var path = url.slice(8) // strips away myapp://
window.localStorage.setItem("externalUrl", path);
}
angular.module('myapp', ['ionic', 'ngCordova'])
.run(function($rootScope, $ionicPlatform, $localstorage) {
$ionicPlatform.ready(function() {
function checkExternalUrl(){
var externalUrl = $localstorage.get('externalUrl', false)
if (externalUrl){
window.location.href = '#' + externalUrl
$localstorage.removeItem('externalUrl')
}
}
$ionicPlatform.on('resume', function(){
checkExternalUrl()
})
});
});

答案 0 :(得分:1)
离子2有自己的模式,它与Angular 2路由不同。它是DeepLinker,描述为here。
答案 1 :(得分:0)
您可以关注these guidelines并使用超时。
您的问题取决于您使用插件的方式和位置。例如,如果您将其与社交共享插件一起使用,那么您必须通过具有共享功能的状态,因此您可能必须更加了解代码的工作方式。