【问题标题】:Links not working on iPhone 5C链接在 iPhone 5C 上无效
【发布时间】:2018-09-09 13:54:28
【问题描述】:

所以,我正在参加一个会议,我们就 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);
}

【问题讨论】:

    标签: ios nativescript iphone-5


    【解决方案1】:

    默认情况下,在iOS上,我们需要在info.plist中设置CFBundleURLTypes,并提供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 为您处理委托方法

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-08-21
      • 1970-01-01
      • 2014-11-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-26
      • 2014-11-21
      相关资源
      最近更新 更多