链接不适用于iPhone 5C

时间:2018-03-30 14:00:47

标签: ios nativescript iphone-5

所以,我参加了一个会议,我们讨论了NativeScript。以为它非常漂亮,我真的很喜欢它。我以前没有/没有进过移动设备。

然而,我发现了一个有趣的错误。我们开发了一个从SpaceX API中提取数据的应用程序。单个视图具有指向火箭发射的链接,您可以点击它们以在浏览器中打开它们。不幸的是,这在我的iPhone 5C上不起作用。演示者扫描了我的二维码,并且能够点击链接就好了。有人在看过/知道解决方法吗?

以下是有问题的代码:

HTML:

<Label text="{{ 'Video: ' + launch.links.video_link }}" class="body m-l-20 m-r-20 m-t-20" textWrap="true" (tap)="onLinkTap(launch.links.video_link)">
</Label>

JS:

onLinkTap(link: string): void {
    utils.openUrl(link);
}

1 个答案:

答案 0 :(得分:0)

默认情况下,在iOS上,我们需要在CFBundleURLTypes中设置info.plist并提供applicationHnadleOpenUrl委托方法。

<key>CFBundleURLTypes</key>
<array>
    <dict>
        <key>CFBundleURLName</key>
        <string>com.yourcompany.myapp</string>
    </dict>
    <dict>
        <key>CFBundleURLSchemes</key>
        <array>
            <string>myapp</string>
        </array>
    </dict>
</array>

委托方法的示例实现

function getParams(url){
    console.log(url);
    var resulturl:string = (<any>NSString)(url).toString();;
    if(resulturl.substring(0,5)=="appgo"){
       console.log(getParameterByName("test", resulturl));
    }

}


class newIOSApplication extends NSObject implements UIApplicationDelegate{
static ObjCProtocols = [UIApplicationDelegate];
        applicationHandleOpenURL(app, url): boolean {
            getParams(url);
            return true;
        }
}
application.ios.delegate = newIOSApplication;

有关上述代码here的更多信息。 还有this community plugin来处理

的委托方法