Game Studio
Liên kế mạng xã hội

Game Studio


Hướng dẫn sử dụng Safari View plugin (iOS)

[IMG]   
Một trong những tính năng mới trong iOS 9 là hỗ trợ một panel trình duyệt web trong ứng dụng được gọi là "Safari View". Panel này cho phép bạn hiển thị một trang web cụ thể mà không làm treo ứng dụng. Một khi panel được mở ra, người dùng có thể di chuyển khắp trang được chỉ định đó, tuy nhiên thanh địa chỉ URL sẽ bị "khóa", không cho phép người dùng mở bàn phím và điều hướng đến một trang web họ khác. Ở phía trên của Safari View là một nút "done", nó sẽ có nhiệm vụ đóng panel và đưa cho người sử dụng trở lại ứng dụng.
 
Lưu ý rằng có một vài khác biệt và hạn chế khác trong Safari View:
  • Tính năng này chỉ dành cho iOS 9, vì vậy bạn phải kiểm tra trước để xác định xem nó có khả dụng hay không trước khi cố gắng để hiển thị nó.
  • Nó không phải là một sự thay thế cho native.newWebView() của Corona - Mục đích chính của nó là để hiển thị các trang web trong một slide-in panel mà không thực sự làm treo ứng dụng.
  • Cookies, HTML5 data, sessions, v.v.. cũng sẽ dùng chung với ứng dụng Safari gốc.
  • Bởi vì panel này sẽ full màn hình, bạn không thể kiểm soát kích thước hoặc vị trí của nó.
  • Bạn phải mở một URL bắt đầu bằng http:// hoặc https://. Bạn không thể hiển thị tập tin HTML cục bộ bằng cách sử dụng Safari View.
Sử dụng plugin
 
Để sử dụng plugin này, đầu tiên bạn phải kích hoạt nó trong Corona Plugin Marketplace. Bạn cũng phải thêm nó vào tập tin build.settings giống như bất kỳ plugin nào khác bạn sử dụng:
settings =
{
    plugins =
    {
        ["CoronaProvider.native.popup.safariView"] =
        {
            publisherId = "com.coronalabs",
            supportedPlatforms = { iphone=true, ["iphone-sim"]=true }
        },
    },
}
 
 
Triển khai thực hiện Safari View.
 
Safari View là một tùy chọn bổ sung của native.showPopup(). Hãy xem xét code này:
-- 1) Nhập widget library
local widget = require( "widget" )
 
-- 2) Tạo một listener function cho các Safari View events
local function safariListener( event )
    if ( event.action == "failed" ) then
        print( "Error loading the URL" )
    elseif ( event.action == "loaded" ) then
        print( "Page loaded!" )
    elseif ( event.action == "done" ) then
        print( "Safari view closed" )
    end
end
 
-- 3) Thiết lập một hàm để hiển thị Safari View
local function showWebsite( event )
 
    -- 4) Kiểm tra nếu Safari View là khả dụng
    local safariViewAvailable = native.canShowPopup( "safariView" )
 
    -- 5) Nếu khả dụng, tạo bảng options và hiễn thị Safari View
    if safariViewAvailable then
        local popupOptions = {
            url = "http://www.coronalabs.com",
            animated = true,
            entersReaderIfAvailable = true,
            listener = safariListener
        }
        native.showPopup( "safariView", popupOptions )
    end
end
 
-- 6) tạo widget button để mở Safari View
local button = widget.newButton{
    x = display.contentCenterX,
    y = display.contentHeight-50,
    label = "Safari View",
    onRelease = showWebsite
}
 
Để thử nghiệm, chúng ta sẽ thiết lập một nút Widget cơ bản mà khi được tap, sẽ mở Safari View. Như vậy, trên dòng đầu tiên, chúng ta phải require() thư viện widget.
 
Tiếp theo, chúng ta tạo ra một hàm listener để xử lý các kết quả của Safari View. Có thể có 3 event và ứng dụng có thể được lập trình để phản hồi lại với chúng khi cần thiết:
  • Không thể load URL → event.action == "failed"
  • Load thành công URL → event.action == "loaded"
  • Người dùng hủy bỏ (hoặc đóng) Safari View → event.action == "done"
Trong block code tiếp theo, chúng ta tạo ra một hàm để xử lý việc hiển thị của Safari View (đây là hàm mà sẽ được gọi khi tap vào các nút).
 
Bên trong hàm này, đầu tiên chúng ta kiểm tra xem Safari View có thể được hiển thị hay không. Nếu có thể, chúng ta tạo ra một bảng "options" (popupOptions) lưu giữ các tham số mà sẽ được truyền vào view controller. Bảng này phải có các URL (url) là một địa chỉ http:// hoặc https://. Các tùy chọn animated cho phép chúng ta xác định là view sẽ "trượt" hay chỉ đơn giản là xuất hiện ngay lập tức. Các tùy chọn entersReaderIfAvailable sẽ nói cho Safari View để nó tự động chuyển vào “reader mode” nếu có thể. Cuối cùng, các tham số listener chúng ta đã viết ở trên sẽ xử lý các Safari View events.
 
Ở phần cuối cùng, chúng ta gọi popup bằng cách gọi native.showPopu () với việc chỉ định "safariView" và bảng các tùy chọn. Trong các block cuối cùng của code, chúng ta tạo ra một nút với widget.newButton(). Nút này sẽ gọi hàm showWebsite() mà chúng ta vừa thảo luận.
 
Kết luận
 

Như bạn có thể thấy, Safari View cho phép bạn nhanh chóng hiển thị nội dung trang web trong ứng dụng của bạn, và Safari View Plugin của Corona sẽ giúp cho bạn dễ dàng để thực hiện điều này chỉ trong một vài dòng code. 

Theo Coronaviet.com

Xem thêm:

Tutorial

Safari View


Đăng sự kiện cho developer