【问题标题】:dynamically add parameter to the start URL动态添加参数到起始 URL
【发布时间】:2017-04-05 16:27:37
【问题描述】:

在使用Cordova之前,我曾经添加了一个动态参数,检测手机OS语言并放在URL中,这样我就可以用用户的语言查看网站页面了。

NSString * language = [[NSLocale preferredLanguages] objectAtIndex:0];
NSString *urlString = [NSString stringWithFormat: @"http://mywebsite.com/?language=%@", language];

但是使用 Cordova 会强制我加载静态 URL,有什么办法可以在应用启动时将语言参数插入到 URL 中吗?

谢谢。

【问题讨论】:

    标签: ios cordova uiwebview cordova-plugins


    【解决方案1】:

    您可以创建一个plugin 以使用您已在使用的代码检测手机语言,并在成功回调时使用 javascript 重定向到您的网站,如下所示:

    window.location.href = 'http://mywebsite.com/?language='+pluginResult;

    您也可以在 didFinishLaunchingWithOptions 方法中的 AppDelegate.m 中添加它,就在返回之前

    NSString * language = [[NSLocale preferredLanguages] objectAtIndex:0]; self.viewController.startPage = [NSString stringWithFormat: @"http://mywebsite.com/?language=%@", language];

    【讨论】:

    • 我的应用程序本地化过程取决于 url 中的一个参数,该参数告诉 php 函数如何翻译。我真的需要它在 URL 中。
    • 但是您正在加载本地 URL,您无法在 Cordova 应用程序中加载本地 PHP。您可以使用 javascript 重定向到您的在线服务器,但在 Cordova 应用程序中加载网站不是一个好习惯,Apple 可能不会批准您的应用程序
    • 我已经在 Cordova 上加载了我的远程服务器 URL!我刚刚输入了我的网站 URL,它运行良好,Apple 已经批准了我的应用程序我的朋友。
    • 那么,你的问题是什么?
    • 我的问题是我无法更改网站URL以在应用程序启动时添加电话语言参数,它是静态的,我在问是否有办法动态更改Cordova静态URL在应用启动时添加语言参数!表示是否有办法覆盖 Cordova 的 URL 并对其进行修改,就像我们对普通 UIWebView 所做的那样。
    【解决方案2】:

    我同意@jcesarmobile 的部分回答。但是要检测用户语言,我猜你不需要开发新插件,因为 globalization plugin 已经可以用于此目的。

    所以希望您可以使用插件来获取首选语言,并使用@jcesarmobile 建议的方法使用javascript 重定向到您的网站,如下所示:

    window.location.href = 'http://mywebsite.com/?language='+preferredLanguage;

    希望对你有帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-02-11
      • 2019-05-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多