【问题标题】:Receive URL in Ionic for ios在 Ionic for ios 中接收 URL
【发布时间】:2015-08-06 14:01:39
【问题描述】:

我正在使用离子框架。我正在尝试设置一种从另一个应用程序接收 url 的方法。就像,您在浏览器中,单击共享,然后将链接发送到另一个应用程序(我的应用程序)。我找到了这个cordova 插件,并将其集成到我的应用程序中。但这是 Android 的插件。我在 IOS 中需要相同的功能。

知道我需要为 ios 使用哪个插件

我为 Android 采取的步骤

1)cordova 插件添加 git://github.com/Initsogar/cordova-webintent.git 2) 检查 config.xml 文件并找到 webintent 的代码

<intent-filter>
    <action android:name="android.intent.action.SEND" />
    <category android:name="android.intent.category.DEFAULT" />
    <data android:mimeType="text/plain" />
</intent-filter>

还有 app.js 代码

if (window.plugins && window.plugins.webintent) {
  window.plugins.webintent.getUri(function(url) {
    alert("getUri url:"+url);
  });
}

对于 ios 中的相同功能有什么建议吗?

谢谢

【问题讨论】:

  • 嘿@Hitu 我也在找同样的功能,你有什么吗
  • @Siddharth 你现在面临什么样的问题?
  • @HituBansal 你有没有搞清楚这个?我发现的最接近的东西是这个engineering.curalate.com/2017/03/09/…,但这仍然很老套,听起来不太好用。然后我发现这个看起来很有希望......github.com/j3k0/cordova-plugin-openwith
  • 是的。我能够解决这个问题。

标签: ios cordova ionic-framework phonegap-plugins ionic


【解决方案1】:

在 Android 上,您可以使用 WebIntent plugin 将您的应用注册为 Share Intent 的接收者。我不确定是否有适用于 iOS 的类似扩展。

【讨论】:

  • 是的,正如我上面所说,我不确定 iOS 是否有类似的东西。我也一直在使用 Ionic,但我(还)没有找到一个 Cordova 插件,它可以连接到本机共享扩展并提供到 JavaScript 的钩子。我正在认真考虑自己写。
【解决方案2】:

您只需要Custom-URL-scheme cordova 插件。

您也可以手动操作。 对于 iOS,添加到您的 *.plist。或者你可以看看Step 5

<key>CFBundleURLTypes</key>
<array>
  <dict>
    <key>CFBundleURLSchemes</key>
    <array>
      <string>URL_SCHEME</string>
    </array>
  </dict>
</array>

在 iOS 中添加自定义方案后,它会自动调用一个名为 handleOpenURL 的函数。

对于android添加AndroidManifest:(在android中你甚至可以监听http方案)

<activity android:label="@string/app_name" android:name="com.yourpackage.name">
    <intent-filter>
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE" />
        <data android:scheme="http" android:host="example.com" android:pathPrefix="/" />
        <data android:scheme="https" android:host="example.com" android:pathPrefix="/" />
    </intent-filter>
</activity>

【讨论】:

  • 我已经实现了相同的。当我从 Safari 中单击共享按钮时,我看不到我的 appicon
  • appicon 是什么意思?例如,您有一个类似 foo 的方案,如果应用程序安装在 iOS 设备上,您可以像 href="foo://app/home" 一样调用它,如果不是您做错了什么,它应该打开您的应用程序
  • 不,我猜你理解我的问题是错误的。我正在 Safari 浏览器中阅读一篇文章。我想将该链接(网址)分享到 myapp。当我从 safari 点击分享时,我想列出我的应用
  • 属于给定 URL 类型的 URL 由它们的方案组件来表征,例如 httpftpmailtofile。方案定义字典中的CFBundleURLSchemes 键指定了一组方案,这些方案描述了这种类型的 URL。因此,尝试将 http 方案添加到您的应用程序中,我想您可以看到您的图标。来源:developer.apple.com/library/mac/documentation/Carbon/Conceptual/…
  • 你能提供一个同样的例子吗?我对此一无所知
【解决方案3】:

现在似乎有一个插件iOS-Phonegap-app-share-extension。不过我没试过。

【讨论】:

    【解决方案4】:

    希望vanger's post 对您有所帮助。

    在 iOS 中打开任何应用程序,您需要知道该应用程序支持哪些 URL 方案。

    例如,您可以通过诸如“mailto:aaa@bbb.com”之类的 url 打开电子邮件编写器。但事情是在应用程序中你可以声明你自己的方案。例如,在 App1 中,您可以声明类似“my-app1-scheme”的方案。在您的第二个应用程序中,您需要打开 URL“my-app1-scheme://”,然后您的 App1 将被打开。

    我刚刚发现这个插件可以让你以更简单的方式做到这一点:https://github.com/EddyVerbruggen/Custom-URL-scheme

    【讨论】:

      【解决方案5】:

      您正在寻找的是 iOS 8 中引入的称为 Action Extension。您的应用程序将出现在所有系统和 3rd 方应用程序的标准动作/共享表中,并且能够处理任何类型的数据,而不仅仅是 URL。

      App Extension Programming Guide 来自 Apple

      【讨论】:

      • 是的,但我无法实现这一点。您能否提供任何相同的示例
      • @iMartin 我认为操作扩展和共享扩展是有区别的。行动意味着观看/转换,而分享是不同的?
      • @Kamalpreet 因为你正在使用一些 JavaScript 包装器?
      • @Eno 你说得对,有两种:ShareAction 扩展。 Share 应该将内容发送到 Internet,而 Action 用于所有其他非共享服务。据我了解,OP想在app中处理URL,所以我建议Action。它们在实现和使用方面非常相似。
      • @Kamalpreet 我自己从来没有实现过,但是各种扩展都有 Xcode 模板。这是开始的好地方。
      【解决方案6】:

      您要问的是您的应用程序的深层链接工具。虽然我无法为您提供确切的解决方案,但通过将几行代码写入您的本机 ios 应用程序的 .plist 文件(就像您在 manifest.xml 中为 android 所做的一样),它相当简单。它叫做 URL scheming,你也可以为你的 ios 应用做一个。

      请转至http://docs.urbanairship.com/topic-guides/ios-deep-linking.html。我希望它能为您提供有关如何执行此操作的指导。

      打开“另一个具有提供深度链接功能的应用程序(如 youtube 等)”的角度/离子代码 - https://medium.com/angularjs-articles/deep-linking-in-ionic-mobile-applications-44d8b4685bb3

      【讨论】:

      • 不,我不是在询问深度链接。我不想通过浏览器打开我的应用程序
      猜你喜欢
      • 2014-11-18
      • 2018-06-13
      • 2020-12-30
      • 2017-06-13
      • 2020-10-28
      • 2019-05-15
      • 2018-03-19
      • 2017-01-20
      相关资源
      最近更新 更多