iOS 中的 URL 方案正在打开我的应用程序,如何获得完整的 url?
My app is being opened by a URL scheme in iOS, how do I get the complete url?
在我的 iOS 应用程序中,我打开了另一个应用程序的 InAppBrowser 并提出了一个问题。然后第二个应用程序使用我配置的方案(如 myapp://)再次调用我的应用程序,完整的 url 类似于 myapp://something/:answer。我设法在 InAppBrowser 中打开应用程序,然后当它调用 myapp:// 时我的应用程序重新打开,但我需要完整的 url 这样我才能得到答案。
到目前为止,我已经用一些示例尝试了我找到的所有内容,例如 https://ionicframework.com/docs/native/deeplinks and https://github.com/EddyVerbruggen/Custom-URL-scheme 但没有成功。
使用深层链接,我尝试按照文档进行操作,但从未调用过订阅,而且我看不到控制台日志。
openSecondApp() {
this.platform.ready().then( () => {
if (this.platform.is('ios')) {
const url = 'secondapp://link/question';
const options: InAppBrowserOptions = {
location : 'no',
hidden : 'no',
clearcache : 'yes',
clearsessioncache : 'yes',
closebuttoncaption : 'Close',
disallowoverscroll : 'no',
presentationstyle : 'pagesheet',
};
const browser = this.inAppBrowser.create(url, '_system');
this.deeplinks.route({
'/': 'ThisPage'
}).subscribe(match => {
console.log(match);
}, nomatch => {
console.log(nomatch);
});
}
});
}
使用自定义 url 方案时,我不明白将 handleOpenURL 函数放在哪里。我试着把它放在 index.html:
中 <head>
标签的末尾
function handleOpenURL(url) {
console.log("url: " + url);
}
但它永远不会被调用。
(我在 iOS,我正在使用带电容器的 Ionic4。)
有人可以分享有关如何执行此操作的示例吗?
你必须使用电容器API
import { Plugins } from '@capacitor/core';
const { App } = Plugins;
App.addListener('appUrlOpen', (data: any) => {
// data.url contains the url that is opening your app
});
在我的 iOS 应用程序中,我打开了另一个应用程序的 InAppBrowser 并提出了一个问题。然后第二个应用程序使用我配置的方案(如 myapp://)再次调用我的应用程序,完整的 url 类似于 myapp://something/:answer。我设法在 InAppBrowser 中打开应用程序,然后当它调用 myapp:// 时我的应用程序重新打开,但我需要完整的 url 这样我才能得到答案。
到目前为止,我已经用一些示例尝试了我找到的所有内容,例如 https://ionicframework.com/docs/native/deeplinks and https://github.com/EddyVerbruggen/Custom-URL-scheme 但没有成功。
使用深层链接,我尝试按照文档进行操作,但从未调用过订阅,而且我看不到控制台日志。
openSecondApp() {
this.platform.ready().then( () => {
if (this.platform.is('ios')) {
const url = 'secondapp://link/question';
const options: InAppBrowserOptions = {
location : 'no',
hidden : 'no',
clearcache : 'yes',
clearsessioncache : 'yes',
closebuttoncaption : 'Close',
disallowoverscroll : 'no',
presentationstyle : 'pagesheet',
};
const browser = this.inAppBrowser.create(url, '_system');
this.deeplinks.route({
'/': 'ThisPage'
}).subscribe(match => {
console.log(match);
}, nomatch => {
console.log(nomatch);
});
}
});
}
使用自定义 url 方案时,我不明白将 handleOpenURL 函数放在哪里。我试着把它放在 index.html:
中<head>
标签的末尾
function handleOpenURL(url) {
console.log("url: " + url);
}
但它永远不会被调用。
(我在 iOS,我正在使用带电容器的 Ionic4。)
有人可以分享有关如何执行此操作的示例吗?
你必须使用电容器API
import { Plugins } from '@capacitor/core';
const { App } = Plugins;
App.addListener('appUrlOpen', (data: any) => {
// data.url contains the url that is opening your app
});