从我的应用打开另一个应用?

时间:2017-06-21 08:01:24

标签: ios objective-c deep-linking

我有两个应用程序。 我想从FirstApp按钮单击打开SecondApp。 第二个应用程序具有深度链接所需的自定义架构。 现在我想知道我需要在FirstApp按钮上执行哪些代码才能打开SecondApp?

3 个答案:

答案 0 :(得分:6)

我可以简单地告诉你。 您需要在应用程序中添加自定义Url架构。

例如,您需要从App1启动App2。

这是您需要在App2 info.plist中添加的代码,或者您可以添加" URL类型"在目标的信息部分。

<array>
    <dict>
        <key>CFBundleTypeRole</key>
        <string>Editor</string>
        <key>CFBundleURLName</key>
        <string>com.company.App1</string>
        <key>CFBundleURLSchemes</key>
        <array>
            <string>CompanyApp2</string>
        </array>
    </dict>
</array>

这是您需要在App1 info.plist文件中添加的代码。

<key>LSApplicationQueriesSchemes</key>
<array>
    <string>CompanyApp2</string>
</array>

然后你将从App1启动App2,如:

        let app2Url: URL = URL(string: "CompanyApp2://")!

        if UIApplication.shared.canOpenURL(app2Url) {
            UIApplication.shared.openURL(app2Url)
        }

希望这会有所帮助。

答案 1 :(得分:0)

尝试以下代码

   let appURL: URL = URL(string: "CustomUrlScheme://")!
    if UIApplication.shared.canOpenURL(appURL) {
        UIApplication.shared.openURL(appURL)
    }

答案 2 :(得分:-4)

In android, we can perform in the below ways
//Dial a phone
Intent callIntent = new Intent(Intent.ACTION_CALL);
callIntent.setData(Uri.parse("tel:0377778888"));
startActivity(callIntent);

//View a map
// Map point based on address
Uri location = Uri.parse("geo:0,0?q=1600+Amphitheatre+Parkway,+Mountain+View,+California");
// Or map point based on latitude/longitude
// Uri location = Uri.parse("geo:37.422219,-122.08364?z=14"); // z param is zoom level
Intent mapIntent = new Intent(Intent.ACTION_VIEW, location);
startActivity(mapIntent);
//View a webpage
Uri webpage = Uri.parse("http://www.android.com");
Intent webIntent = new Intent(Intent.ACTION_VIEW, webpage);
startActivity(webIntent);