แบบฟอร์ม Xamarin เปิดแอป iOS อื่น

ในแอป Xamarin Forms ของฉัน ฉันต้องการเปิดแอปอื่นโดยคลิกปุ่ม ตัวอย่างนี้ใช้กับแอป Facebook แต่ควรใช้งานร่วมกับแอปอื่นๆ ได้เช่นกัน ฉันอ่านมามากเกี่ยวกับที่นี่ และ ที่นี่ จากโซลูชัน / ลิงก์ทั้งสองที่ฉันสร้างคลาสในโครงการ iOS ของฉัน:

[assembly: Xamarin.Forms.Dependency(typeof(OpenAppiOS))]
namespace FieldServicePortable.iOS.Common
{
    public class OpenAppiOS : IOpenApp
    {
        public OpenAppiOS() { }

        public void OpenExternalApp()
        {
            var nsurl = "facebook://";
            var request = new NSUrl(nsurl);

            try
            {
                var isOpened = UIApplication.SharedApplication.OpenUrl(request);   //Open App
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
    }
}

ฉันยังขยาย Info.plist ด้วยบรรทัดนี้ด้วย

<key>LSApplicationQueriesSchemes</key>
<array>
   <string>facebook</string>
</array>

ฉันไม่ต้องการรบกวนคุณด้วยส่วนการเขียนโค้ดในโครงการที่ใช้ร่วมกัน เพราะส่วนนี้ใช้งานได้

หลังจากคลิกปุ่มในแอป โค้ดจะถูกดำเนินการแต่ไม่มีอะไรเกิดขึ้น ไม่มีข้อยกเว้นแม้แต่น้อย ค่าของตัวแปร isOpened คือ false

ดังนั้นคำถามของฉันคือ:

  1. แน่นอน ฉันพลาดอะไรบางอย่างในโค้ดของฉันไปหรือเปล่า?
  2. มีข้อกำหนดใด ๆ สำหรับแอปที่ควรเปิดหรือไม่?
  3. จำเป็นต้องมีการกำหนดค่าบางอย่างใน iOS หรือไม่?

person Torben    schedule 18.07.2018    source แหล่งที่มา
comment
โปรดทราบว่ามันเรียกว่าการเชื่อมโยงในเชิงลึก   -  person LeRoy    schedule 19.07.2018


คำตอบ (1)


ลองใช้ Device.OpenUri(new Uri("fb://"));

นอกจากนี้คุณยังสามารถดู xamarin วิธีเปิดแอป Facebook และ Twitter จากแอป iOS ของฉันเพียงปุ่มเดียว

person Vishal D Aher    schedule 18.07.2018
comment
ขอบคุณสำหรับการเล่นซ้ำของคุณ ฉันทดสอบแล้วและใช้งานได้ดี แต่คุณพบ URI นี้ที่ไหน เพราะฉันต้องการเปิดแอปอื่นๆ เช่น Anveo Mobile ด้วย - person Torben; 18.07.2018
comment
ในที่สุดฉันก็ดาวน์โหลดแอปด้วย iMazing และแตกไฟล์ .ipa และค้นหาใน info.plist สำหรับ CFBundleURLSchemes นั่นคือชื่อที่ฉันตามหา :) - person Torben; 19.07.2018