将查询字符串添加到本地HTML文件

时间:2015-12-12 05:58:47

标签: ios swift http nsurl

我有代码加载本地html文件(html文件在应用程序内部,而不是从服务器),但我如何去添加查询字符串。我基本上想把数据从swift传递到html webview。这甚至可能吗?我发现的很多例子都与来自服务器的html文件有关,但是没有找到存储在应用程序中的html文件。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/productName"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:paddingTop="5dp"
        />

    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:weightSum="3"
        android:paddingBottom="5dp"
        >

        <TextView
            android:id="@+id/mrp"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:paddingTop="5dp"
            android:layout_weight="1"
            />

        <TextView
            android:id="@+id/sellPrice"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:paddingTop="5dp"
            android:layout_weight="1"
            />

        <TextView
            android:id="@+id/quantity"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:paddingTop="5dp"
            android:layout_weight="1"
            />

    </LinearLayout>

</LinearLayout>

5 个答案:

答案 0 :(得分:1)

是的,你可以使用Javascript来做到这一点。查看stringByEvaluatingJavaScriptFromString

https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIWebView_Class/#//apple_ref/occ/instm/UIWebView/stringByEvaluatingJavaScriptFromString

答案 1 :(得分:1)

如果您有一个包含查询的完整URL字符串,则只需使用该字符串初始化NSURL。

let url = NSURL(string: "www.stackoverflow.com")

答案 2 :(得分:1)

您可以使用NSURLComponentsNSURLQueryItem构建包含查询参数的网址:

var urlComponents = NSURLComponents(string: "www/index.html")!

urlComponents.queryItems = [
  NSURLQueryItem(name: "key1", value: "value1"),
  NSURLQueryItem(name: "key2", value: "value2")
]
urlComponents.URL // returns www/index.html?key1=value1&key2=value2

答案 3 :(得分:1)

我通过使用pathForResource而不是pathForResource来解决这个问题,因为我能够在最后添加字符串。

var url = NSBundle.mainBundle()。pathForResource(&#34; index&#34;,ofType:&#34; html&#34;,inDirectory:&#34; www&#34;)。stringByAppendingString(&# 34; OS = IOS&#34)

答案 4 :(得分:1)

要将查询字符串参数添加到WebView的本地URL,您可以使用以下代码。它适用于Xcode 9和Swift 4。

let bundleMainUrl = Bundle.main.url(forResource: "index", withExtension: "html", subdirectory: "www");
let fullUrl = URL(string: "?os=ios", relativeTo: bundleMainUrl);
let request = URLRequest(url: fullUrl!);
webView?.load(request);