Chia sẻ ảnh chỉ có trên Instagram của iOS 13 không hoạt động


8

Lên đến iOS 12.4, việc triển khai chia sẻ ảnh lên nguồn cấp dữ liệu Instagram (theo tài liệu ) đã hoạt động bình thường, nhưng kể từ iOS 13, nó không hoạt động nữa.

Với triển khai hiện tại - UIDocumentInteractionControllerUTI được đặt thành "com.instagram.exclusivegram"và mở rộng tệp thành .igo- hoàn toàn không có tùy chọn chia sẻ Instagram. Khi tôi thay đổi phần mở rộng tệp thành .igtôi có thể thấy tùy chọn chia sẻ Instagram trong số các đề xuất. Cách này để chia sẻ để cung cấp hoạt động nhưng đó không phải là giải pháp chỉ dành cho Instagram.

Đặt UTI thành "com.instagram.photo"không thay đổi bất cứ điều gì.

Hành vi dự kiến ​​là để xem chế độ xem hiển thị bên dưới khi tôi nhấn nút "chia sẻ" mà không cần các bước bổ sung. Đó có thể là lỗi của Instagram hay có cách nào khác để triển khai nó cho iOS 13 không?

nhập mô tả hình ảnh ở đây


FWIW, tôi đang đấu tranh chính xác cùng một vấn đề. Tôi đã cài đặt phiên bản Instagram 119.0 trên các thiết bị chạy iOS 11, 12 và 13 và sự cố chỉ xảy ra trên thiết bị chạy iOS 13. Đoán rằng điều đó có nghĩa là nó đã bị hỏng trên iOS 13 và không cụ thể vào ứng dụng Instagram.
Dave L

Câu trả lời:


4

bạn nên thêm hình ảnh của mình vào thư viện ảnh sau đó chia sẻ hình ảnh từ nó trực tiếp lên instagram

trước hết đừng quên thêm NSPhotoL LibraryAddUsageDes mô tả và sơ đồ instagram vào thông tin của bạn.plist:

<key>NSPhotoLibraryAddUsageDescription</key>
<string>$(PRODUCT_NAME) wants to save pictures to your library</string>

<key>LSApplicationQueriesSchemes</key>
<array>
    <string>instagram</string>
</array>

Hoạt động chính xác cho 12.413 iOS

import UIKit
import Photos

class TestViewController: UIViewController, UIDocumentInteractionControllerDelegate {

override func viewDidLoad() {
    super.viewDidLoad()
    postImageToInstagram(UIImage(named: "bigImage")!)
}

func postImageToInstagram(_ image: UIImage) {
    // Check if we have instagarm app
    if UIApplication.shared.canOpenURL(URL(string: "instagram://app")!) {
        // Requesting authorization to photo library in order to save image there
        PHPhotoLibrary.requestAuthorization { status in
            if status == .authorized {
                UIImageWriteToSavedPhotosAlbum(image, self, #selector(self.image(_:didFinishSavingWithError:contextInfo:)), nil)
            } else { print("wrong status \(status)") }
        }
    } else { print("Please install the Instagram application") }
}

@objc func image(_ image: UIImage, didFinishSavingWithError error: Error?, contextInfo: UnsafeRawPointer) {
    if let error = error {
        print(error)
        return
    }
    let fetchOptions = PHFetchOptions()
    // add sorting to take correct element from fetchResult
    fetchOptions.sortDescriptors = [NSSortDescriptor(key: "creationDate", ascending: false)]
    fetchOptions.fetchLimit = 1
    // taking our image local Identifier in photo library to share it
    let fetchResult = PHAsset.fetchAssets(with: .image, options: fetchOptions)
    if let lastAsset = fetchResult.firstObject {
        let url = URL(string: "instagram://library?LocalIdentifier=\(lastAsset.localIdentifier)")!
        if UIApplication.shared.canOpenURL(url) { UIApplication.shared.open(url) }
        else { print("Please install the Instagram application") }
    }
}
}

Kết quả nhập mô tả hình ảnh ở đây

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.