How to open URL schemes from Safari in iOS9?

前端 未结 5 1107
离开以前
离开以前 2020-12-30 01:21

I was able to open apps from safari this way:

window.location = \'myapp://do/xx\';

or open facebook app:

window.location =          


        
相关标签:
5条回答
  • 2020-12-30 02:07

    this is how I have revised my Facebook/Google Login integration to get it work on latest update. which now user Safari web view.

    <key>LSApplicationQueriesSchemes</key>
      <array>
          <string>fbapi</string>
          <string>fb-messenger-api</string>
          <string>fbauth2</string>
          <string>fbshareextension</string>
          <string>com.googleusercontent.apps.39373238582-opjuqokmar2i5t3sdk2vs5sifer4moen</string>
          <string>com-google-gidconsent-google</string>
          <string>com-google-gidconsent-youtube</string>
          <string>com-google-gidconsent</string>
          <string>com.google.gppconsent.2.4.1</string>
          <string>com.google.gppconsent.2.4.0</string>
          <string>googlechrome</string>
          <string>googlechrome-x-callback</string>
      </array>
    
    0 讨论(0)
  • 2020-12-30 02:09

    With the general release of ios9 setting window.location to a custom url does launch the app, but only after the user hits open in a popup. I filed a bug with apple about this, and they responded saying that it was intended behavior for launching an app from safari. They said they would look into the issue where if you hit cancel it fails out on future attempts.

    0 讨论(0)
  • 2020-12-30 02:17

    Just assign a desired address to the href property, instead of trying to replace the whole window.location object:

    window.location.href = 'myapp://do/xx';

    It works for me on iOS 9.0.2, but now safari shows a confirmation dialog to ensure а user really wants open your link in the app.

    0 讨论(0)
  • 2020-12-30 02:19

    With iOS9, Apple is changing a few things concerning URL schemes. Here is an article about those changes.

    Basically, you now have to register all URL schemes that are supported by your app in your .plist file.

    0 讨论(0)
  • 2020-12-30 02:22

    IOS 9 URL Shchemes Update : iOS 9 introduces LSApplicationQueriesSchemes to allow apps to query if other apps are installed.

    1- If a url scheme is declared and calling canOpenURL(scheme)

    YES if a installed app supports that URL scheme

    NO if no app supporting that url

    syslog will show canOpenURL: failed for URL: "urlScheme://" - error: null

    2- If a url scheme is not declared and calling canOpenURL(scheme)

    always return NO

    syslog will show canOpenURL: failed for URL: "urlScheme://" - error: null

    In iOS 9, the developer must add these info.plist LSApplicationQueriesSchemes

    <array>
        <string>urlscheme</string>
        <string>urlscheme2</string>
        <string>urlscheme3</string>
        <string>urlscheme4</string>
    </array>
    

    50 max. unqiue URL scheme can be declared!

    0 讨论(0)
提交回复
热议问题