【问题标题】:Web/Android/iOS - internal links - looking for ideas/solution.Web/Android/iOS - 内部链接 - 寻找想法/解决方案。
【发布时间】:2015-02-18 11:39:39
【问题描述】:

我将首先描述我们现在拥有的:

  • CMS - 用药物(药物)描述填充数据库。药品名称为 文本框和 CKEditor 用于 HTML 格式的描述。
  • WCF - 将数据库导出为 JSON
  • Android app-药物列表,然后webview显示药物描述 HTML 格式。

我们需要找到解决方案来在药物描述中创建内部链接(即药物名称),这将导致提到的药物描述页面。

我们目前的方法有什么方法可以实现这一目标吗?

即使我找到了如何在 CMS 中创建此功能的方法(可能我会使用哈希标签来区分外部链接和内部链接),但我仍然不知道如何在 Android 应用中获得此功能。

如果在我们当前的设置中添加此功能有风险或很难,你们至少可以告诉我应该如何构建以应用此内部链接功能。 我以前从未这样做过,所以我什至不知道从哪里开始。 感谢您的帮助。

【问题讨论】:

    标签: android .net json wcf ckeditor


    【解决方案1】:

    让您在 CMS 中的链接具有自定义的 href 格式 - 比如 drug://drugid

    而不是在 android 应用程序中(加载描述的 web 视图,覆盖 shouldOverrideUrlLoading

    webView.setWebViewClient(new WebViewClient() {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            if (url.startsWith("drug://")) {
                //this is where the click to that href will be intercepted
                //extract the id from url and do whatever you want with it
                return true; //disable the webview to load that url
            }
            return false;
        }
    });
    

    对于 IOS 设备覆盖 shouldStartLoadWithRequest:

    - (BOOL)WebView:(UIWebView *)myWebView shouldStartLoadWithRequest:(NSURLRequest *)request          navigationType:(UIWebViewNavigationType)navigationType {
    
        if([[request.URL absoluteString] hasPrefix:@"drug://"]) {
            //this is where the click to that href will be intercepted
            //extract the id from url and do whatever you want with it
            return NO;  //disable the webview to load that url
        }
        return YES;
    }
    

    【讨论】:

    • 嗨。谢谢你的建议。或多或少我想通了这部分。我认为将此前缀添加到 CKEditor 作为“a href”类型是可能的,并使用 ID 作为参考。这是一个相对容易的部分(但是让它在网络版本上工作 - CMS 和应用程序版本将是一个挑战)。我也知道如何覆盖 url 源(HTML 源)。更重要的是如何使用 java 侦听器使这个“a href”点击能够调用带有药物描述的意图(屏幕)。哪个 HTML 控件可以与 java 一起使用?
    • 还有一个问题。我可以从 webview 调用 javascript 吗?我有想法在 CMS 中使用 OnClik 调用方法 getDrug(12) 创建“a href”drug://12“。然后在 android 中创建 javascript 方法 getDrug(int),它将显示具有此 ID 的药物。这可行吗?如何关于效率和 webview 生成时间?
    • 您不必使用 javascript,在 shouldOverrideUrlLoading 中使用带有该 ID 的 Intent 并重定向到您将显示药物描述的新视图。但你也可以拦截 javascript - developer.android.com/guide/webapps/…
    • 我只是意识到我不需要调用 SQLite 来获取药物信息。我可以在 webView 中使用 CMS 药物页面的确切网址。但是,这需要互联网连接,其中一个条件是离线访问。
    猜你喜欢
    • 2020-09-17
    • 2012-07-10
    • 1970-01-01
    • 2014-07-20
    • 2017-07-27
    • 1970-01-01
    • 2019-01-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多